Предположим, что есть объекты, делающие подписки на сервер сокетов, например:
socket.on('news', obj.socketEvent)
Эти объекты имеют короткий срок службы и часто создаются, генерируя множество подписок. Это похоже на утечку памяти и подверженную ошибкам ситуацию, которую можно было бы интуитивно предотвратить следующим образом:
socket.off('news', obj.socketEvent)
перед удалением объекта, но, увы, в сокете нет метода off
. Есть ли другой метод, предназначенный для этого?
Изменить: не найдя ответа, я назначаю пустой метод, чтобы перезаписать метод-оболочку для исходного обработчика событий, пример ниже.
var _blank = function(){};
var cbProxy = function(){
obj.socketEvent.apply(obj, arguments)
};
var cbProxyProxy = function(){
cbProxy.apply ({}, arguments)
}
socket.on('news', cbProxyProxy);
// ...and to unsubscribe
cbProxy = _blank;