我发现了一个奇怪的问题,与beforeunload
事件有关。
看看这段代码——
客户端 JavaScript:
var socket = io.connect('http://localhost:1337');
socket.on('connect', function() {
window.addEventListener("beforeunload", function () {
socket.emit('out');
});
});
服务器节点.js:
/* 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('out', function() {
console.log('disconnected');
});
});
如果我继续启动服务器并localhost:1337
关闭选项卡,则服务器不会登录disconnected
。
我发现如果我删除该行 -io.set('transports', ['xhr-polling']);
服务器将记录disconnected
。
为什么服务器不登录disconnected
xhr-polling?
感谢所有试图提供帮助的人。