【发布时间】:2012-03-14 04:36:03
【问题描述】:
假设有对象像这样订阅套接字服务器:
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;
【问题讨论】:
标签: javascript socket.io publish-subscribe