node.js - 使用带有xhr-polling的socket.io获取disconnect事件

时间:2013-07-25 14:23:02

标签: node.js javascript-events socket.io

有人可以告诉我如何通过socket.io xhr-pollingnode.js的{​​{1}}断续续订活动吗?

此示例不适用于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获取断开连接事件?

提前致谢;)

1 个答案:

答案 0 :(得分:1)

当连接关闭时,socket.io中的xhr-polling实现不会发出disconnect事件,请参阅github issue #431

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

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

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

相关问题: