Node.js socket.io websocket连接无效(最新版本)

Node.js socket.io websocket连接无效(最新版本),node.js,websocket,socket.io,Node.js,Websocket,Socket.io,在安装node.js之后,我按照这个步骤启动了一个简单的聊天服务器。安装起来很容易,而且正在工作,但我注意到两个问题: 1.)我从socket.io收到此警告 info - socket.io started debug - served static /socket.io.js debug - client authorized info - handshake authorized 1385647068766475337 debug - setting request GET /sock

在安装node.js之后,我按照这个步骤启动了一个简单的聊天服务器。安装起来很容易,而且正在工作,但我注意到两个问题:

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),我知道它支持WebSocket(我能够用PHP WebSocket成功地连接到它们)。它继续使用XHR,但我对Websocket功能的运行非常感兴趣


2.)当我转到localhost:8080连接聊天服务器时,它需要大约7-8秒来提示我输入姓名,并实际将我连接到服务器。我有一种感觉,这可能是因为它正在恢复到XHR,但我对它了解不多,所以我不能说。有什么想法吗

我在使用较旧版本的socket.io和较新的chrome版本(以及其他浏览器)时看到了这种行为。它将超时,然后回退到xhr轮询。要检查正在使用的socket.io库的版本,请在shell(linux/unix)上键入:

它应该告诉你这个版本。此时的最新值为0.9.13,该值有效

如果您是从运行教程,请注意package.json文件硬编码了一个旧版本的socket.io,它不适用于最新的浏览器


希望这能有所帮助。

我也面临着类似的问题

你的案子-

  • 尝试删除您的cookie,有时xhr轮询选项在成功连接后会保存到cookie中,并在下次重新使用
  • 另外,
    debug-served static/socket.io.js
    有时会在html或jade模板文件中错误引用socket.io文件时出现。尝试更正脚本src链接,以防出错。它应该类似于-
    var socket=io.connect('http://localhost:3000');
    或者您也可以像这样尝试一起删除链接-
    var socket=io.connect()

希望有帮助。

我也有同样的问题。这可能是旧的。但我的设置在digitalocean上。通常情况下,在一台服务器上运行节点应用程序的用户使用nginx作为端口侦听,并在其自己的专用端口下运行节点。nginx没有将websocket端口转发到节点,只有端口80,nodejs最初没有初始化

您需要确保您的nginx为此进行了正确配置


我刚刚将端口添加到io中。connect直接连接到节点服务器,避免使用nginx。

我也看到了同样的问题。我使用的是Chrome 24。警告从何而来(代码)?我在图书馆里找不到它。“websocket连接无效”
npm ls| grep socket.io