当客户端断开 (用户关闭浏览器或选项卡)时是否可以发送套接字数据? 因为,我发现在断开连接时的默认绑定不会接收任何输入数据。有没有办法让客户端在套接字断开的情况下发送服务器数据?
//on server side
socket.on('disconnect',function(){
//in other binds, it takes 'data' as an input but this does not
});
我试图使用jQuery的卸载方法 像下面
//on client side
$(window).unload(function(){
socket.emit('depart','I am leaving');
});
然而,它似乎并没有在所有发出的卸载来解决这个问题。 (也许socket
在卸载时超出范围?) 当客户端断开连接时,有没有办法通过websocket将数据发送到服务器?
其次,有没有什么办法可以将字符串数据存储在套接字中?例如, socket.userName = userNameVar;
--update-- 这是我如何设置环境对服务器端
io.sockets.on('connection',function(socket){
socket.on('depart',function(data){
console.log(data);
console.log("user left");
});
socket.on('disconnect',function(){
console.log("user disconnected");
});
});
和下面的代码是在客户端。
var socket = io.connect(hostVar);
$(window).unload(function(){
socket.emit('depart','I am leaving');
});
是的,我做到了,但jQuery.unload事件将不会发送该数据...我将在更新 – user482594
更多代码嗯,你的套接字对象仍然在该阶段的功能?做一个警报(socket.toString())来查看对象是否仍然存在。 –
显然,警报不会显示出来......猜猜我的代码在某处存在问题..我会寻找 – user482594