0

有人可以告诉我如何socket.io使用xhr-pollingin获取断开连接事件node.js吗?

此示例不适用于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呢?

4

1 回答 1

1

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

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

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

警告:当网络和/或您的服务器速度较慢时,此选项可能会恶化用户体验,请参阅此拉取请求以获取更多信息。

相关问题:

于 2013-08-09T08:50:36.963 回答