【问题标题】:node.js - get disconnect event with socket.io with xhr-pollingnode.js - 使用 xhr-polling 使用 socket.io 获取断开连接事件
【发布时间】:2013-07-25 14:23:02
【问题描述】:

有人可以告诉我如何在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 获取断开连接事件?

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    相关问题:

    【讨论】:

      猜你喜欢
      • 2013-08-01
      • 2013-04-06
      • 2014-03-08
      • 2013-04-03
      • 2012-02-10
      • 1970-01-01
      • 2016-09-20
      • 1970-01-01
      • 2016-10-17
      相关资源
      最近更新 更多