我在nodejs中运行一个简单的websocket服务器
const WebSocket = require('ws');
const wss = new WebSocket.Server({ host: '0.0.0.0', port: 13000 });
wss.on('connection', function connection(ws) {
console.log("new connection");
ws.on('message', function incoming(message) {
console.log('received: %s', message);
});
ws.on('error', function(e) {
console.log('error', e);
});
ws.on('close', function(e) {
console.log('close', e);
});
ws.send('something');
});
我可以使用以下方式连接到服务器:
s=new WebSocket('ws://localhost:13000')
一切都很好。但是,如果我尝试从另一台计算机连接:
s=new WebSocket('ws://serveripaddress:13000')
服务器显示
new connection
close 1006
所以我知道客户端连接,但它会立即断开连接。我完全迷失在这里,不知道如何诊断我的问题。有什么想法吗?
更新
这些方案有效:
这些失败了:
这是一个奇怪的部分,如果我使用' net'创建一个简单的套接字服务器,以上所有方案都可以工作!所以它似乎仍然是一个网络问题(因为websockets在某些情况下工作)但它是一个特定于websockets的网络问题(因为套接字服务器在websocket不工作的地方工作)!
我无法访问我的Windows主机所在的防火墙,所以如果这是问题,那么我就会陷入困境。但我会在可以访问防火墙的不同主机上尝试这一切。
但如果它是防火墙,我会在Windows主机和VM之间工作,因为它们在自己的虚拟网络上......