2

我有一个案例,我可能需要通过 WebSockets 向客户端发送 500KB - 1MB 的数据。因此,我想知道是否可以跟踪客户端接收到多少数据的进度。这样,当通过较慢的连接进行连接时,应用程序似乎不会无响应。

4

1 回答 1

3

没有内置的方法可以做到这一点。(也就是说,虽然 websocket 协议允许对消息进行分段,但任何使用 Javascript 的 websocket API 的客户端都无法访问它,并且仅在浏览器接收到所有消息片段并将其内容组合到单个缓冲区时才被通知。)

但是,您可以通过将单个大消息分成几个较小的消息来指示应用程序代码的进度。

如果这样做,您还需要定义自己的简单协议。至少,这可能是一条初始消息,通知客户端后面的消息将被合并并加起来最多 x 个字节。或者,如果您事先不知道数据的大小,则在最终数据传输之后的第二条消息指示您的碎片消息的结束。

于 2013-01-21T09:01:59.043 回答