所以我正在将Node.js应用程序从本地计算机移动到生产服务器。 Socket.IO(版本0.6.17)似乎在我的服务器上工作正常,但是在尝试与服务器通信时客户端出错。
以下是一些代码:
<script src='http://cdn.socket.io/stable/socket.io.js'>
// ...
var socket = new io.Socket(null, { port: 47556 }).connect();
// ...
</script>
以下是Google Chrome控制台每隔几秒(连续)输出的内容:
GET http://mysite.com:47556/socket.io/xhr-polling//1304476733618 undefined (undefined)
有人提到它可能是由于客户端和socket.io版本之间的版本差异,但我不知道如何检查客户端版本。
答案 0 :(得分:3)
为了安全起见,我将使用随服务器一起分发的socket.io客户端脚本。将脚本标记更改为引用“/socket.io/socket.io.js”(我认为)并让您的应用程序提供服务。这也将使Flash套接字工作,而不必将其置于不安全模式(因为跨域问题)。
答案 1 :(得分:0)
原来问题是WebSockets不发送正常的HTTP请求,导致它们被nginx破坏。从Q/A discussion与我的托管公司,他们说解决方案是购买专用于侦听WebSocket连接的私有IP。
我最终还是以Nodester来托管我的Node.js应用程序。