我正在使用node.js和socket.io进行HTML5游戏
我决定将其托管在Heroku上。
Heroku不允许使用WebSocket,因此我必须设置xhr-polling。 (Socket-io on Heroku)
io.configure( function() {
io.set( "transports", ["xhr-polling"] );
io.set( "polling duration", 10 );
} );
以前,我仅使用网络套接字
io.set( "transports", ["websocket"] );
现在,当客户端断开连接(关闭其窗口或刷新其页面)时,“断开连接”事件不会立即在服务器上触发(似乎正在等待客户端心跳超时)。
client.on( "disconnect", onClientDisconnect );
如果客户端重新加载,则在触发断开连接之前会收到多个连接事件。
我的问题在这里。
您有什么主意,为什么xhr-polling不会触发断开事件?
这是socket.io的错误配置吗?
谢谢。
最佳答案
它说here,您可以配置心跳。为了正确配置它,您必须同时在服务器和客户端(给出here)上调整心跳。
尝试降低心跳。它可以解决您的问题。
另一方面,appfog似乎支持websocket。
关于javascript - Socket.io需要很长时间才能触发断开连接事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14168842/