Chrome 19中的Websockets异常(最新测试版)

时间:2012-04-12 21:04:29

标签: google-chrome google-chrome-extension websocket

我几个月来一直在使用websockets而没有问题在Chrome和我的localhost应用之间进行通信。突然之间,使用最新版本的Chrome,数据不会干净利落。

在Chrome扩展程序的javascript中,代码的相关部分是:

window.ws = new WebSocket("ws://localhost:13000/");

window.ws.onopen = function () {
    window.ws.send('GO');

在我的C#app中:

string msg = ASCIIEncoding.UTF8.GetString(buffer);
Debug.WriteLine(msg);

几个月来,这个工作得很好,我每天都会“退出”。现在我在接收缓冲区上得到的是4个字节 {114,247,7,0) ,在我能找到的任何编码中都没有转换为“GO”。任何人都知道会发生什么?我很困惑,因为我没有触及任何一端的代码(chrome或者监听器)。

干杯!

PS:完整的Chrome版本19.0.1084.15 beta-m

2 个答案:

答案 0 :(得分:2)

想出来。原来Chrome默认情况下刚刚在websockets上启用了压缩功能。我只需要修改我端的websocket服务器以拒绝该扩展,Chrome将恢复为纯文本。

答案 1 :(得分:0)

阅读有关屏蔽的一些数据。 浏览器可以发送启用了屏蔽的消息,它会在帧中添加额外的4个字节,这将对您的消息应用屏蔽。 浏览器可能启用或禁用它,因此在服务器端,如果帧包含启用屏蔽的位,则应支持两者并使用屏蔽。

根据RFC 6455

查看屏蔽的应用方式