необходимо транслировать во все свои комнаты, когда пользователь отключается. Мне нужно получить socket.rooms на серверной стороне disconnect
событие. , но в документации говорится, что это невозможно, потому что при отключении триггеров розетка вышла из всех комнат.socketio override onclose метод
копаюсь в источник и нашел этот код:
Socket.prototype.onclose = function(reason){
if (!this.connected) return this;
debug('closing socket - reason %s', reason);
this.leaveAll();
this.nsp.remove(this);
this.client.remove(this);
this.connected = false;
this.disconnected = true;
delete this.nsp.connected[this.id];
this.emit('disconnect', reason);
};
может быть, я должен переопределить этот метод и вставить событие разъединитель, например, так:
io.on("connection", function(socket){
var onclose = socket.onclose;
socket.onclose = function(reason){
this.emit('disconnecting', reason);
onclose.apply(socket, reason);
};
//other logic ...
}
, но этот кусок кода не Работа. нужны некоторые предложения или другое решение. ТКС.
P.S .: версия
узел: v0.12.3
socket.io версия: "1.3.2"