请帮帮我!
在我的网站socket.io上更新到最新版本的Google Chrome(43.0.2357.65(后,它停止工作
它发送的请求太多,每次都会创建新的套接字连接。
我的网站的谷歌开发者工具网络截图:https://i.stack.imgur.com/TLXGg.png
但是socket.io网站上的演示示例http://socket.io/demos/chat/工作良好。
socket.io演示的网络截图://i.stack.imgur.com/QWNW2.png
我在客户端上使用此代码:
$.getScript('http://localhost:1337/socket.io/socket.io.js', function () {
var socket = io.connect('http://localhost:1337/?token=ABCDEF');
});
在其他浏览器中,代码运行良好,在更新前的谷歌chrome中运行良好
Socket.io 1.3.5版
在控制台中,我有以下调试消息:
engine.io-client:polling-xhr xhr open GET: //it.iksys:1337/socket.io/?token=410235d6a03ead4497fa18037e8da5d73133367d&EIO=3&transport=polling&t=1432302871093-738 +1ms
socket.io.js?_=1432302864284:3715 engine.io-client:polling-xhr xhr data null +1ms
socket.io.js?_=1432302864284:3715 engine.io-client:polling polling got data ok +4ms
socket.io.js?_=1432302864284:3715 engine.io-client:socket socket receive: type "error", data "parser error" +0ms
socket.io.js?_=1432302864284:3715 engine.io-client:polling polling +1ms
socket.io.js?_=1432302864284:3715 engine.io-client:polling-xhr xhr poll +1ms
socket.io.js?_=1432302864284:3715 engine.io-client:polling-xhr xhr open
我发现了只为客户端定义websocket传输的解决方案:
NodeJS:
var options = {};
options.transports = ['websocket'];
var socket = io.connect('http://localhost:1337/?token=ABCDEF', options);
角度4:
this.socket = io(environment.socketURL, { upgrade: false, transports: [ 'websocket' ], query: {token: TokenService.token()}});
我想这个版本的谷歌浏览器在xhr轮询方面存在一些问题。
// package.json
{
"dependencies": {
"socket.io-client": "2.1.1"
}
}
https://github.com/socketio/socket.io-client/issues/1245