gpt4 book ai didi

node.js - 如何干净地断开与 socket.io 中的命名空间的连接?

转载 作者:搜寻专家 更新时间:2023-10-31 23:49:16 25 4
gpt4 key购买 nike

我一直在尝试断开与命名空间甚至主套接字连接本身的连接,但一直失败。下面是我的代码

服务器端:

 socket.on('userDisconnect', function () {        
socket.disconnect();
console.log("User Disconnected");

});

客户端:

// already connected to /world namespace
socket.emit('userDisconnect');
socket.disconnect();
socket = io.connect('http://something/india' );

我尝试断开与客户端和服务器端的连接,但它不起作用。谁能指出错误。这是 socket.io 写入控制台的内容

   info  - booting client
debug - websocket writing 0::/world
User Disconnected
debug - client authorized for /india
debug - websocket writing 1::/india

/world 是它尝试断开连接的命名空间,然后尝试连接到/india 命名空间。

最佳答案

这对我有用

broadcastSocket.packet({ type: 'disconnect' });
broadcastSocket.$emit('disconnect');
disconnectNamespace(broadcastSocket.name, broadcastSocket.socket);


function disconnectNamespace (name,socket) {
if (socket.namespaces[name]) {
var nsp = socket.of(name);
nsp.packet({ type: 'disconnect' });
nsp.$emit('disconnect');
delete socket.namespaces[name];

if (Object.keys(socket.namespaces).length === 0) {
socket.disconnect();
}
}
};

关于node.js - 如何干净地断开与 socket.io 中的命名空间的连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16105429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com