小编Nag*_*agi的帖子

允许公共IP通过WebSockets连接

我尝试与nodejs ws(einaros)创建聊天,这是我的代码:

服务器:

var WebSocketServer = require('ws').Server;
var wss = new WebSocketServer({ port: 80 });
wss.on('connection', function(ws) {
    console.log('connecting count:' + wss.clients.length);
});
Run Code Online (Sandbox Code Playgroud)

客户:

var hostname = location.hostname;
var port = 80;
var url = 'ws://'+hostname+':'+port+'/';
window.WebSocket = window.WebSocket || window.MozWebSocket;
var w = new WebSocket(url);
Run Code Online (Sandbox Code Playgroud)

当我用我的计算机或其他与我的路由器连接的计算机进行测试时,它运行良好.但是,通过Internet访问的其他客户端无法建立连接.当然,他们使用公共IP,如218.xxx.xxx.xxx,而不是192.168.xxx.xxx.

我想知道如何解决这个问题.

谢谢你的回答.但是,这可能不是NAT问题.例如,我的公共IP是218.100.50.50,而我的私有IP是192.168.1.1.当连接来自我的网络外部并访问218.100.50.50:80时,路由器将其重定向到192.168.1.1:80.有一个可以通过这种方式访问​​的网页,但仍然无法连接到我的websocket服务器.这个问题让我很困惑.

networking router portforwarding websocket node.js

7
推荐指数
1
解决办法
4560
查看次数

标签 统计

networking ×1

node.js ×1

portforwarding ×1

router ×1

websocket ×1