使用Socket.io的Twitter流式传输应用程序在使用IP地址和端口访问网站时工作正常,但在使用域名访问网站时,实时流式传输会引发错误。
尝试以下链接,打开开发人员工具,查看错误
此格式后出现数百个套接字错误:
WebSocket connection to
'ws://sentiment-sweep.com/socket.io/?EIO=3&transport=websocket&sid=guBmeCqsOr22CTsWAAC0'
failed: WebSocket is closed before the connection is established.
最初的一些上面的套接字错误,但是然后10-15秒才能开始正常工作
几年前我为大学项目制作了这个Node应用程序。我保持更新。它使用Socket.io和Twitter API来传输实时推文,使用D3直观地计算情绪并显示结果。我使用NGINX进行端口转发。
供参考,这是我的git repo:https://github.com/Lissy93/twitter-sentiment-visualisation
最近我做了一个小的HTML / CSS更改,并更新了几个依赖项,就在这个奇怪的socket.io问题开始的时候
io.connect();
没有参数连接之前有没有人见过类似的问题? 任何建议,意见或答案将不胜感激 - 非常感谢提前。
答案 0 :(得分:0)
找到了解决方案,实际上很简单!在这里发布答案,帮助其他人面对类似问题,因为我完全坚持了2天!
我的问题是由dependency update引起的。
根据发行说明:
新的(V 2.0.0)主要版本带来了一些性能改进,但也隐藏在发行说明的底部是这样的:
由于以下原因,此版本不向后兼容:
- 与engine.io-parser(socketio / engine.io-parser#81)中的utf-8编码相关的重大更改
- 更新以使客户端上的套接字ID与服务器端的id匹配(socketio / socket.io-client#1058)
请注意,如果您使用的是自签名证书,则rejectUnauthorized现在默认为true (socketio / engine.io客户端#558)。
以下是完整的V2发行说明:https://github.com/socketio/socket.io/releases/tag/2.0.0
根据文档制作您的应用https或签署您自己的请求。作为一个快速修复,我只是降级回socket.io V 1.7.0并且它完美地运行