我正在使用 node.js 和 socket.io 做一个 HTML5 游戏
我决定将它托管在Heroku上。
Heroku 不允许使用 WebSockets,所以我必须设置 xhr-polling。(Heroku 上的 Socket-io)
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 的错误配置吗?
谢谢。