以下代码仅在浏览器中工作。它在node.js中不工作
let socket1 = io('http://localhost:3031/nsp')
socket1.on("connect", (error) => {
console.log("socket1: connect")
});我正在连接到netty-socketio (v1.7.7) java服务器。我能够连接到浏览器和node.js客户端上的根命名空间,一切都按预期工作。但是,如果我试图连接到命名空间,则只有浏览器客户端可以按预期进行连接。
此外,我可以在服务器上看到node.js客户机(v2.4.0)连接到根名称空间,而它应该连接到命名的名称空间"nsp“。因此,客户端加入根名称空间,并且似乎从未加入"nsp“命名空间。
在进一步的检查中,在指定命名空间时,在连接之后,我可以在node.js客户机上触发的唯一事件是"ping“所有其他事件(连接、connect_error、错误、重新连接.)永远不要触发。
更新:上述代码在连接到node.js服务器时工作,因此问题似乎与netty-socketio服务器有关。
下面是初始化netty服务器的方式:
Configuration config = new Configuration();
config.setHostname("localhost");
config.setPort(3031);
server = new SocketIOServer(config);
server.addNamespace('/nsp')发布于 2022-03-31 18:53:01
我终于想出来了。我不得不将node.js客户端版本还原为1.7.4 (https://www.npmjs.com/package/socket.io-client/v/1.7.4)才能让它正常工作。不知道为什么我被迫使用这样一个老客户端才能使用名称空间。
https://stackoverflow.com/questions/71696137
复制相似问题