session.removeAllListeners()的问题

对同一个玩家,我在connetor服务器里调用session.removeAllListeners()后,session上注册的closed的事件监听器还是会被调用,这是为什么啊

标签: 开发求助
Coder0xAQ 在 2016-3-23 13:55发布 分享到 weibo
2 回复
#1 Coder0xAQ 2016-3-23 15:00 回复

看源码找到了原因了,把我的解决方案放上来吧
/**
* 给session注册事件监听器的时候最好用这种方法
* @param session
* @param event
* @param listener
*/
function sessionOn(session, event, listener) {
session.session.on(event, listener);
}

/*
* 删除seesion上注册的事件监听器必须用这种方法,不能直接用session.remove
系列的函数
* 并且不能对session调用removeAllListener()方法,因为pomelo内部要需要通过事件监听器对session进行清理工作
* @param session
* @param event
* @param listener
*/
function sessionRemoveListener(session, event, listener) {
session.session.removeListener(event, listener);
}

#2 a447450190 2016-3-24 15:49 回复

问一下
node 和python vs 都是什么版本?

回到顶部