我在节点中使用网络库。我想从我的代码中提出一个close事件。有什么方法可以做到吗?
如果存储了套接字对象,我可以在其上执行sock.destroy()
,但不会通知客户端关闭连接,这会导致连接中断一半。
还有其他方法来处理这种情况吗?
答案 0 :(得分:0)
向该特定套接字(客户端)发出自定义'kill_connection'
事件,以便通知客户端由于您决定的原因而终止连接。
例如,使用socket.io
:
var csid = socket.id; //The socket you are going to destroy
io.to(csid).emit('kill_connection');
在执行套接字销毁之前执行此操作。
您的客户(如果是网络应用)可能如下所示:
socket.on("kill_connection", killSession);
function killSession(){
socket.disconnect();
console.log("socket.disconnect");
location.reload();
}
如果您希望单页webapp显示登录屏幕,则重新加载。