我尝试与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服务器.这个问题让我很困惑.