我有一个应用程序,在其中从浏览器(在我这里是Chrome)向服务器打开了一个websocket,然后我开始从服务器端向浏览器发送消息。我发现的问题是,当我从服务器快速地发送消息时,消息开始在浏览器端缓冲。这意味着浏览器“落后”,最终处理了由服务器长时间前发送的消息,这在我的应用程序中是不希望的。
我已经排除了以下可能导致缓冲的原因:
- 服务器。我可以完全关闭服务器进程,并且我看到我的javascript代码继续接收消息数分钟,因此缓冲不会发生在服务器进程内部。 - 网络。当在与我的Web浏览器相同的机器上运行服务器并且我发送的数据量远低于TCP连接到本地主机的带宽限制时,我可以复现相同的问题。
这只剩下浏览器。是否有任何方法可以(a)确定Chrome为我的websocket保留的缓冲区大小,或者(b)减小此缓冲区的大小并使Chrome丢弃帧?
我已经排除了以下可能导致缓冲的原因:
- 服务器。我可以完全关闭服务器进程,并且我看到我的javascript代码继续接收消息数分钟,因此缓冲不会发生在服务器进程内部。 - 网络。当在与我的Web浏览器相同的机器上运行服务器并且我发送的数据量远低于TCP连接到本地主机的带宽限制时,我可以复现相同的问题。
这只剩下浏览器。是否有任何方法可以(a)确定Chrome为我的websocket保留的缓冲区大小,或者(b)减小此缓冲区的大小并使Chrome丢弃帧?