Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.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
Node.js 断开连接事件在2分钟后被触发_Node.js_Socket.io - Fatal编程技术网

Node.js 断开连接事件在2分钟后被触发

Node.js 断开连接事件在2分钟后被触发,node.js,socket.io,Node.js,Socket.io,我使用Node.JS和Socket.IO创建聊天,我使用持续时间为10的XHR轮询在Heroku上托管它 当我把页面留给我的客户机时,我想在服务器上自动调用disconnect方法,将其从其他客户机上删除。事实上已经完成了,但是。。。在客户真正离开页面后2分钟,这相当尴尬 有没有一种方法可以在客户端不应答时立即调用disconnect方法?或者至少更快地知道客户何时不在了 我曾尝试使用jQuery关闭页面出口上的套接字客户端,但它不起作用。问题是使用socket.disconnect()是异步的

我使用Node.JS和Socket.IO创建聊天,我使用持续时间为10的XHR轮询在Heroku上托管它

当我把页面留给我的客户机时,我想在服务器上自动调用disconnect方法,将其从其他客户机上删除。事实上已经完成了,但是。。。在客户真正离开页面后2分钟,这相当尴尬

有没有一种方法可以在客户端不应答时立即调用disconnect方法?或者至少更快地知道客户何时不在了


我曾尝试使用jQuery关闭页面出口上的套接字客户端,但它不起作用。问题是使用
socket.disconnect()
是异步的、非阻塞的,用户在请求完成之前就离开了…

您可以使用
socket.io
配置的
heartbeat timeout
heartbeat interval
close timeout


在此页面中搜索
心跳
超时

如果将socket.io客户端上的
'sync disconnect on unload'
选项设置为true,它将在onbeforeunload中发送同步xhr断开连接请求,该请求将断开套接字连接。

io.set(“心跳超时”,10)
io.set(“心跳间隔”,5)似乎根本没有改变任何东西。。。这很奇怪。我将socket.io降级到了0.9.4版,因为它是一个bug,尽管它在我的web主机上仍然不起作用。最后给了你分数,因为你是唯一尝试过的人。好问题,希望尽快解决+1.