node.js - Socket.IO 在 Google Chrome 43.0.2357.65 上停止工作

标签 node.js google-chrome websocket socket.io polling

请帮帮我!

在我的网站上更新到最新版本的 Google Chrome (43.0.2357.65) 后,socket.io 停止工作。

它发送了太多的请求,每次都创建新的套接字连接。

我站Google Developer Tools截图网:http://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');
 });

在其他浏览器中代码工作正常,在更新前的谷歌浏览器中工作正常

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 传输的解决方案:

Node :

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-polling 方面存在一些问题。

关于node.js - Socket.IO 在 Google Chrome 43.0.2357.65 上停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30392980/

相关文章:

css - 覆盖 Bootstrap 表格边框折叠样式

javascript - 从浏览器到本地连接的 iPhone 的文件传输

java - 我可以将 Socket.io 与 Spring-boot 一起使用吗?

node.js - 如何在 Mongoose 中分组并显示多个字段的计数

Node.js worker /后台进程

javascript - PerformanceObserver 无法测量重定向请求时间

javascript - Android 4 Chrome 在 CSS 转换后点击触摸事件的测试问题

rest - 同一基于 Tomcat 的应用程序中的 Web 套接字和 Rest API

node.js - Express JS - 重置 cookie 过期时间

mysql - 使用 mssql 和 node-sql 更新