我应该在这种用例中使用WebSocket吗

时间:2018-06-21 16:19:02

标签: javascript websocket

我对WebSocket有点陌生,想问你们一个问题,WebSocket是否真的是我最好的选择。

用例。客户需要提交不同种类的工作,例如通过Web GUI将J1,J2,J3,...发送到服务器API,服务器将执行或分配给其他计算资源来完成作业,但是服务器需要向每个客户端更新他们提交的作业的进度。一个非常简单的示例是,如果客户端A要上传一个大文件,并且服务器需要通知上传进度,直到完全上传。我确实认为这是一个非常常见的用例。

我现在要做的方法是使用HTTP轮询,即每隔1秒从客户端查询一次状态,以从服务器获取状态并进行显示。我确实认为必须有其他更有效的方法来实现此目的,并且我想出了WebSocket方法。但是,在阅读后,WebSocket的最佳用途是将相同的数据实时广播到所有下标,例如在给定渠道中更新特定的股价。

你们是否认为WebSocket是正确的方法?如果是这样,我应该如何为不同的客户和不同类型的工作或其他建议建立渠道?

谢谢。

1 个答案:

答案 0 :(得分:0)

如果需要实时通知,

WebSocket可能是一个解决方案。您不需要为每个作业使用不同的渠道,只需要允许您在服务器端进行多路复用并在客户端进行多路分解的消息即可。

您应该考虑到每个打开的WebSocket都使用服务器上的资源,因此您应该考虑平均工作量。

另一方面,如果您不需要实时通知,则松散的轮询可能是更好的解决方案。