我有一個在用戶登錄時在地圖上繪製標記的項目。 但是,標記在用戶註銷後停留。Socket.io在斷開連接時刪除標記
我想寫一個斷開功能來摧毀那個標記。 但它不工作。
我需要什麼客戶端嗎?
服務器端
// Socket markers start
io.on('connection', function(socket) {
socket.on('marker', function(data) {
data.socketId = socket.id;
User.findById(socket.request.session.passport.user, function(err, user){
if(user){
data.socketId = socket.id;
data.user = user;
markers.push(data);
console.log(markers);
// markers[socket.id] = data;
io.emit('show-marker', markers);
}
});
});
// socket.on('show-marker',)
socket.on('show-user-location', function(data) {
io.emit('show-user-location', data);
});
socket.on('disconnect', function(){
console.log(socket.name + ' has disconnected from the chat.' + socket.id);
delete markers[socket.id];
});
});
怎麼會知道客戶端去除標記?你不應該在用'delete markers [socket.id]'刪除後用已更新的標記列表再次發出'''show-marker''事件嗎? –