0

で切断イベントsocket.ioを取得する方法を誰か教えてもらえますか?xhr-pollingnode.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 issue #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 に答える