【问题标题】:Socket.IO client not communicating with serverSocket.IO 客户端不与服务器通信
【发布时间】:2011-08-18 04:27:42
【问题描述】:

因此,我目前正在将 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版本之间的版本差异,但我不知道如何检查客户端版本。

【问题讨论】:

  • 如果您无法从客户端访问 mysite.com:47556,您的网络托管公司会阻止它吗?你能从你的服务器访问那个端口吗?

标签: javascript node.js socket.io


【解决方案1】:

原来问题是 WebSockets 不发送正常的 HTTP 请求,导致它们被 nginx 丢弃。来自我的托管公司的Q/A discussion,他们说解决方案是购买一个专用 IP,专门用于侦听 WebSocket 连接。

不过,我最终还是选择了 Nodester 来托管我的 Node.js 应用程序。

【讨论】:

    【解决方案2】:

    为了安全起见,我会使用随服务器分发的 socket.io 客户端脚本。更改您的脚本标签以引用“/socket.io/socket.io.js”(我认为)并让您的应用程序为其提供服务。这也将使 Flash Sockets 工作,而不必将其置于不安全模式(因为跨域问题)。

    【讨论】:

    • 该文件存在并且我使用了它,但我仍然遇到同样的问题。还有什么想法吗?
    • 其他浏览器中的行为相同吗?确定端口号正确吗?
    • 样式表将至少在 Safari 和 Firefox 中加载,但除此之外,我在 Firebug 中遇到了同样的错误。另外,我在 Webfaction 的主机上设置了这个,我使用分配的端口47556
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-16
    • 2017-01-29
    • 1970-01-01
    相关资源
    最近更新 更多