我试图通过websocket将JSON传递给html GUI。当size大于32768字节时,chrome会引发此异常:
与'ws:// localhost:8089 / events /'的WebSocket连接失败:收到一个设置压缩位而另一个解压缩正在进行的帧
在实例化WebSocket的行上:
this._websocket = new WebSocket(url);
然而它在firefox上工作正常。我在服务器端使用了jetty 9.1.3,我尝试使用chrome 33和34 beta。
我忘了确切地说,如果我发送长度超过32768字节的消息,在chrome的网络调试工具上,它显示32768字节长度而不是实际消息长度。
有什么想法吗?
答案 0 :(得分:2)
使用Jetty 9.1.2.v20140210
时,我对连接没有任何问题,但是后来的9.1.3.v20140225
版本失败,我使用Opera
或Chrome
收到错误。 Firefox
适用于所有版本。
我向Jetty提交了一个错误报告:https://bugs.eclipse.org/bugs/show_bug.cgi?id=431459
答案 1 :(得分:1)
这可能是Jetty中的一个错误。
permessage-deflate
要求在碎片消息的第一个帧上设置压缩位 - 并且仅在此处。
可能是Jetty将传出消息分段为32k片段,并在所有帧上设置压缩位。如果是这样,那就是一个错误。
我刚刚使用Autobahn|Testsuite测试了当前的Chrome 33:一切都按预期工作..包括128k的消息。
您可以使用上述测试套件测试Jetty。如果有错误,它会抓住它。