如何解除推送器上的所有频道/事件

时间:2013-11-09 11:23:33

标签: pusher

在javascript pusher客户端中,是否可以取消绑定特定频道或事件的所有回调?

1 个答案:

答案 0 :(得分:0)

频道从EventDispatcher继承而且目前不提供全部解除绑定。您可以通过重新初始化管理callbacks上事件的channel成员变量来破解它:

var pusher = new Pusher( '22364f2f790269bec0a0' );
var channel = pusher.subscribe( 'test-channel' );

var callback = function() {};

for( var i = 0, l = 10; i < l; ++i ) {
  channel.bind( 'event-' + i, callback );
}

console.log( channel.callbacks._callbacks );

channel.callbacks = new channel.callbacks.constructor();

您可以在行动here中看到这一点。 但这将是一个黑客

最好的办法是提交一个拉取请求,将unbind_all函数添加到EventDispatcher对象。