【问题标题】:Socket IO fails to connect within corporate networksSocket IO 无法在公司网络内连接
【发布时间】:2011-08-29 16:59:01
【问题描述】:

我刚刚开始掌握 socket.IO 和 nodeJS。让我的网络应用程序与他们正常工作。然后我让一个朋友在办公室机器上试用它,发现它无法连接。

我设置了这两个测试用例:

http://thebeer.co/labs/rt/chat.php (server JS here) - 这是socket.IO chat example 的精确副本。

http://thebeer.co/labs/rt/test.php (server JS here)

他们都为他失败了。我还有一个朋友在大学电脑上试用,但也无法连接!在被告知较低的端口号不太可能被安全网络阻止后,我尝试了侦听端口 8100、8080 和 81-90 的节点服务器。

真的不明白,每个人都可以访问实时功能非常重要,我做错了什么?

如何让 socket.IO 连接到安全的办公室和大学网络?

【问题讨论】:

    标签: javascript node.js real-time websocket socket.io


    【解决方案1】:

    许多大型企业网络会为大多数用户屏蔽除端口 80 (http) 和端口 443 (https) 以外的所有内容。尝试将所有内容放在这两者之一上,以获得最大的兼容性。

    【讨论】:

    • 现在测试会得到结果。其他一切看起来都井井有条吗?
    • 它说端口“已经在使用”。如何通过端口 80 运行节点和标准 apache http 请求?
    • 您将无法将服务器上的两个应用程序绑定到同一个端口。恐怕我对 node.js 或 socket.io 不太了解,但你能让你的网络服务器代理 node.js 吗?像这样的东西:readwriteweb.com/hack/2010/12/how-to-run-apache-and-nodejs.php
    • 好的,我正在尝试节点 http-proxy 扩展,以允许所有请求通过端口 80。我将报告结果。不明白为什么没有人遇到这些问题?!
    • 你也可以使用 nginx 作为反向代理并在端口 80 上运行它(默认情况下)
    【解决方案2】:

    即使你让一切都在端口 80 上运行,也请记住,许多企业网络通过内容过滤器或其他可能不理解 websockets 升级标头的代理运行 HTTP 流量......你可能想尝试强制套接字.io 使用其中一种后台兼容性传输,看看是否有帮助。

    FWIW,对 Colin Pickard +1,因为他可能是对的......我只是想我会添加这一点以防万一。

    【讨论】:

      【解决方案3】:

      看看这两个链接。我帮助了另一个想要同样的成员。

      我在 80 端口上运行 nodejs,我对公司网络没有任何问题。 (我需要优先考虑的一件事)

      How do I run Node.js on port 80?

      https://serverfault.com/questions/273143/binding-apache-to-specific-ip-address/273181#273181

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-02-24
        • 2022-09-27
        • 1970-01-01
        • 2020-07-08
        • 1970-01-01
        相关资源
        最近更新 更多