推送库的工作原理如下
var channel = pusher.subscribe('test_channel');
channel.bind('my_event', function(data) {
alert(data.message);
});
然而: 我能做到吗?
var channel = pusher.subscribe('test_channel');
channel.bind(['my_event1', 'my_event2'....'my_event100'], function(data) {
alert(data.message);
});
在我的用例中,我有一个频道,并且有许多不同的事件,每个客户可能想要同时订阅100个事件。
答案 0 :(得分:3)
channel.bind
函数的签名为String channelName, Function callback
(pusher-js source)。您无法传递Array
个频道。
如果你想要调用相同的函数,那么你需要传递对函数的引用并多次调用bind
:
var channel = pusher.subscribe('test_channel');
var callback = function(data) {
alert(data.message);
};
var eventName;
for( var i = 0; i < 100; ++i ) {
eventName = 'my_event' + ( i + 1 );
channel.bind( eventName, callback );
}
JS的单线程特性将等同于这些事件绑定同时发生。
您当然可以创建自己的帮助函数以允许bind( Array eventNames, Function callback )
。