使用带有xhr轮询的socket.io获取断开连接事件



有人能告诉我如何在node.js中获得socket.ioxhr-polling的断开事件吗?

此示例不适用于xhr-polling,但可用于websockets。。

/* Basics */
var express = require('express'),
app = express(),
server = require('http').createServer(app),
io = require('socket.io').listen(server);
server.listen(1337, null);
io.set('transports', ['xhr-polling']);
// routing
app.get('/', function (req, res) {
res.sendfile("index.html");
app.use(express.static(__dirname));
});
var online_clients = 0;
io.sockets.on('connection', function (socket) {
    socket.on('disconnect', function() {
        console.log("SOMEONE LEFT");
    });
});

那么如何用xhr-pooling获取断开连接事件呢?

socket.io中的xhr轮询实现在连接关闭时不会发出断开连接事件,请参阅github问题#431。

您可以要求socket.io的客户端通过打开sync disconnect on unload标志来通知服务器断开连接:

// the browser (HTML) side
var socket = io.connect('http://localhost', {
  'sync disconnect on unload': true
});

警告:当网络和/或服务器速度较慢时,此选项可能会恶化用户体验,有关详细信息,请参阅此拉取请求。

相关问题:

  • socket.io通过XHR轮询强制断开连接
  • socket.io-断开连接事件不';xhr轮询中的t fire

最新更新