【问题标题】:Socket IO Won't work on public IP, Works fine localhostSocket IO 不能在公共 IP 上工作,在 localhost 上工作正常
【发布时间】:2017-11-04 12:27:34
【问题描述】:

所以我使用的是socket io,并且我已经成功地在本地主机上部署了应用程序。

要连接客户端,我正在使用:

var socket = io.connect(window.location.origin + ":3333");

用于可扩展性。 我正在使用的服务器端

var express = require("express"),
app = express(),
http = require("http"),
server = http.createServer(app),
io = require("socket.io").listen(server),
request = require("request");

server.listen(3333);
io.sockets.on("connection", function(socket) {
...
});

我已通过在 :3333 上执行 nmap 验证我的应用程序已在服务器上运行。

但我不断在客户端收到 ERR_CONNECTION_TIMED_OUT。

有什么建议吗?

【问题讨论】:

  • 你检查你的防火墙了吗?仅供参考,大多数 linux 服务器默认打开防火墙。谷歌“iptables”
  • Siebetman 你的回答是对的,我必须添加防火墙规则才能明确接受数据包。如果您回答问题,我会接受您的回答,谢谢

标签: javascript node.js unix networking socket.io


【解决方案1】:

解决方案是在服务器上为端口的防火墙添加规则:

sudo iptables -I INPUT -p tcp --dport 3333 -m state --state NEW -j ACCEPT

【讨论】:

    猜你喜欢
    • 2019-10-12
    • 2017-12-12
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-22
    • 2013-10-01
    • 1970-01-01
    相关资源
    最近更新 更多