问题
我的Twitter流应用使用Socket.io,在通过IP地址和端口号访问站点时工作正常,但在使用域名访问站点时,实时流会抛出错误。
请尝试下面的链接,并打开开发者工具查看错误:
使用域名访问站点 (http://sentiment-sweep.com)
数百个套接字错误遵循此格式:
WebSocket connection to
'ws://sentiment-sweep.com/socket.io/?EIO=3&transport=websocket&sid=guBmeCqsOr22CTsWAAC0'
failed: WebSocket is closed before the connection is established.
使用IP和端口访问站点 (http://XXX.XX.XXX.XX:3003)
一开始出现了一些套接字错误,但是在10-15秒后应用程序开始正常工作。
背景
我几年前为大学项目制作了这个Node应用程序。我一直在更新它。它使用Socket.io和Twitter API来流式传输实时推文,计算情感,并使用D3可视化显示结果。我使用NGINX进行端口转发。
供参考,这是我的git仓库:https://github.com/Lissy93/twitter-sentiment-visualisation
最近我进行了一些小的HTML/CSS更改,并更新了一些依赖项,这就是这个奇怪的socket.io问题开始的时候。
我到目前为止尝试过的
- 更改端口 - 没有区别
- 我使用
io.connect();
没有参数连接 - 包括本地的socket.io,而不是从CDN读取
- 可能与我的网站非SSL有关
- 本地它完全正常,比API版本更快,延迟更小
有人见过类似的问题吗?
const domain = "localhost"; const port = 8080; const io = require('socket.io'); const server = http.createServer(); server.listen(port, domain); const socket = io.listen(server);
(注释中的代码片段显示效果不太好),但希望这能帮到你 :) - Lissy93