當客戶端斷開 (用戶關閉瀏覽器或選項卡)時是否可以發送套接字數據? 因爲,我發現在斷開連接時的默認綁定不會接收任何輸入數據。有沒有辦法讓客戶端在套接字斷開的情況下發送服務器數據?
//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