У меня есть проект, который отображает маркеры на карте, когда пользователь входит в систему. однако маркеры остаются после выхода пользователя из системы.Socket.io Удаление маркера при отключении
Я пытаюсь написать функцию разъединения, чтобы уничтожить только этот маркер. но не работает.
Нужна ли мне клиентская сторона?
SERVER SIDE
// 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];
});
});
Как на стороне клиента должен знать удалить маркер? Не следует ли снова выпустить событие «show-marker» из обновленного списка маркеров после удаления с помощью 'delete markers [socket.id]'? –