Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node JS Chat-告诉是否导航到页面或关闭窗口_Javascript_Jquery_Node.js_Navigation - Fatal编程技术网

Javascript Node JS Chat-告诉是否导航到页面或关闭窗口

Javascript Node JS Chat-告诉是否导航到页面或关闭窗口,javascript,jquery,node.js,navigation,Javascript,Jquery,Node.js,Navigation,我正在向我的网站添加一个节点JS聊天。目前,如果用户使用以下JQuery方法关闭窗口,我将从聊天中清除该用户: $(window).unload(function () { jQuery.get("/leave", {id: session.id}); }); 这非常有效,并告诉node JS服务器用户已关闭窗口,但是如果用户导航到网站上的另一个页面,这也会将用户从聊天室中删除。我有没有办法判断他们是否转到域上的另一个页面,而不是将他们从聊天中删除?当他们导航到另一个页面时,就好像他们正在

我正在向我的网站添加一个节点JS聊天。目前,如果用户使用以下JQuery方法关闭窗口,我将从聊天中清除该用户:

$(window).unload(function () {
  jQuery.get("/leave", {id: session.id});
});
这非常有效,并告诉node JS服务器用户已关闭窗口,但是如果用户导航到网站上的另一个页面,这也会将用户从聊天室中删除。我有没有办法判断他们是否转到域上的另一个页面,而不是将他们从聊天中删除?当他们导航到另一个页面时,就好像他们正在关闭窗口一样


欢呼声

当用户离开聊天室时,检查服务器,而不是客户端

我能看到的唯一问题是,除非您使用JavaScript加载页面,否则您的用户每次浏览网站时都会离开并重新进入聊天室

您可以通过在断开部分设置超时来解决此问题。这不是一个完美的解决方案,但它在大多数情况下都有效

如果您使用的是
socket.io
以下是一些服务器代码:

socket.on('connection', function (client) {

  client.on('disconnect', function () {
    client.broadcast({ action: "quit", clientId: client.sessionId });
  });

});
在客户端,您可以检查
action==“quit”
并采取适当的操作