在安装了node.js之后,我按照这个tutorial启动了一个简单的聊天服务器。它很容易设置,并且工作正常,但我注意到两个问题:
1.)我收到了来自socket.io的警告
info - socket.io started
debug - served static /socket.io.js
debug - client authorized
info - handshake authorized 1385647068766475337
debug - setting request GET /socket.io/1/websocket/1385647068766475337
debug - set heartbeat interval for client 1385647068766475337
warn - websocket connection invalid这对我来说没有任何意义,因为我没有接触到socket.io的任何东西,而且我使用的是最新的chrome版本(23),我知道它支持websockets (我能够通过PHP-Websockets成功地连接到它们)。它继续使用XHR,但我对Websocket功能的工作非常感兴趣。
2.)当我转到localhost:8080连接到聊天服务器时,它需要大约7-8秒的时间来提示我输入我的名字,并实际将我连接到服务器。我有一种感觉,这可能是因为它正在恢复到XHR,但我真的不太了解它,所以我不能说。有什么想法吗?
发布于 2012-12-29 19:44:46
当我在较新的chrome版本(以及其他浏览器)中使用较旧版本的socket.io时,我看到了这种行为。它将超时,然后回退到xhr轮询。要检查您正在使用的socket.io库的版本,请在您的shell (linux/unix)中输入:
npm ls| grep socket.io它应该会告诉你版本。目前的最新版本是0.9.13,可以正常工作。
如果您正在从http://psitsmike.com运行本教程,请注意,package.json文件硬编码了一个较旧版本的socket.io,该版本不能在最新的浏览器上运行。
希望这能有所帮助。
发布于 2013-10-30 19:03:10
我也面临着类似的问题。
你的案子-
debug - served static /socket.io.js。尝试更正脚本src链接,以防它出错。它应该类似于- var socket = io.connect();,或者您也可以像这样尝试删除所有链接- var socket = io.connect('http://localhost:3000');
希望能有所帮助。
发布于 2014-05-27 18:57:59
我也有同样的问题。这可能是旧的。但我的设置是数字海洋。实际情况是,在一台服务器上运行节点应用程序的人通常使用nginx作为端口侦听,并在自己的专用端口下使用节点。nginx没有将websocket端口转发到节点,只有80端口,nodejs一开始并没有初始化。
http://nginx.org/en/docs/http/websocket.html
你需要确保你的nginx配置正确。
我只是将端口添加到直接连接到节点服务器的io.connect中,并避免使用nginx。
https://stackoverflow.com/questions/13965768
复制相似问题