当用户关闭浏览器选项卡时,我需要通过 socket.io 向 nodejs 服务器发送数据。
我试着做:
var data={};
window.onbeforeunload = function() {
// i have a object to be sent
data.data1='abcd';
data.data2=1234;
socket.emit("senddata",data);
}
此代码在用户点击网站上的链接进行导航时有效,但在用户关闭浏览器选项卡时无效
我还尝试在服务器端配置套接字 io,如下所示.. 认为错误可能是由于套接字连接在发出数据之前被关闭:
var io = require('socket.io').listen(app.listen(port));
io.configure(function () {
io.set('close timeout',12000);
});
它也没有工作的大部分时间。
我也在客户端试过这个:
var socket = require('socket.io').listen(80, {
"sync disconnect on unload":false
});
它也没有工作
我曾尝试接收这样的数据
var io = require('socket.io').listen(app.listen(port));
io.sockets.on('connection', function (socket) {
socket.on('senddata', function (data) {
// data processing
});
});
请..帮我解决这个问题..提前谢谢..