有没有办法断开客户端与SocketIO,并确实关闭连接?因此,如果有人连接到我的服务器,并且我想关闭它们与我的服务器之间的连接,我将如何进行此操作?
我正在使用socket.io和node.js. 我在跟踪哪些用户在线时遇到问题,因为套接字IO识别出XHR-Polling客户端已断开连接之前的几秒延迟.
如果XHR-Polling客户端刷新页面,则其新连接消息似乎在其断开连接消息之前.当试图跟踪哪些用户在线时,这会引起混淆.
一种解决方案可以是检测服务器端上的传输方法并延迟XHR轮询客户端的连接,以确保首先运行断开连接功能.
有没有人有这方面的经验?
在socket.io中,当传输xhr轮询处于活动状态时,不会触发disconnect事件.如果我将传输切换到websockets它工作正常,但在xhr-polling中它不起作用.
/* 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));
});
io.sockets.on('connection', function (socket) 
    socket.on('disconnect', function() {
        console.log('LOL');
    });
});
在下面的代码中,断开连接不会触发,但如果我删除该行 - 
io.set('transports', ['xhr-polling']); 
它工作正常,那么为什么它不能用于xhr-polling?但只有websockets?
我怎样才能解决这个问题?我错过了什么吗?
提前致谢 ;)
我有一个socket.io节点脚本:
socket.on('disconnect', function(data) {    
  console.log('disconnect!');
});
当我连接Chrome/Safari并关闭页面时,我看到"断开连接!" 在我的服务器控制台中
但是,当我连接我的iPhone并关闭页面时,我没有看到此消息.我知道了debug - xhr-polling closed due to exceeded duration
如何通过iOS接收断开连接事件?