admin管理员组

文章数量:1024074

The push library works as below

var channel = pusher.subscribe('test_channel');
channel.bind('my_event', function(data) {
  alert(data.message);
});

However: Would I be able to do this?

var channel = pusher.subscribe('test_channel');
channel.bind(['my_event1', 'my_event2'....'my_event100'], function(data) {
  alert(data.message);
});

In my use case, I have one channel and there are many different events and each client might want to simulantaneously subscribe to 100s of events.

The push library works as below

var channel = pusher.subscribe('test_channel');
channel.bind('my_event', function(data) {
  alert(data.message);
});

However: Would I be able to do this?

var channel = pusher.subscribe('test_channel');
channel.bind(['my_event1', 'my_event2'....'my_event100'], function(data) {
  alert(data.message);
});

In my use case, I have one channel and there are many different events and each client might want to simulantaneously subscribe to 100s of events.

Share Improve this question edited Jul 28, 2024 at 23:59 Jeff Puckett 41.2k19 gold badges124 silver badges174 bronze badges asked Jan 2, 2014 at 22:04 samolsamol 20.7k33 gold badges93 silver badges132 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 5

The signature for the channel.bind function is String channelName, Function callback (pusher-js source). You can't pass in an Array of channels`.

If you want the same function to be called then you'll need to pass a reference to the function and call bind multiple times:

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 );
}

The single-threaded nature of JS will equate to these event binding happening simultaneously.

You could of course create your own helper function to allow bind( Array eventNames, Function callback ).

The push library works as below

var channel = pusher.subscribe('test_channel');
channel.bind('my_event', function(data) {
  alert(data.message);
});

However: Would I be able to do this?

var channel = pusher.subscribe('test_channel');
channel.bind(['my_event1', 'my_event2'....'my_event100'], function(data) {
  alert(data.message);
});

In my use case, I have one channel and there are many different events and each client might want to simulantaneously subscribe to 100s of events.

The push library works as below

var channel = pusher.subscribe('test_channel');
channel.bind('my_event', function(data) {
  alert(data.message);
});

However: Would I be able to do this?

var channel = pusher.subscribe('test_channel');
channel.bind(['my_event1', 'my_event2'....'my_event100'], function(data) {
  alert(data.message);
});

In my use case, I have one channel and there are many different events and each client might want to simulantaneously subscribe to 100s of events.

Share Improve this question edited Jul 28, 2024 at 23:59 Jeff Puckett 41.2k19 gold badges124 silver badges174 bronze badges asked Jan 2, 2014 at 22:04 samolsamol 20.7k33 gold badges93 silver badges132 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 5

The signature for the channel.bind function is String channelName, Function callback (pusher-js source). You can't pass in an Array of channels`.

If you want the same function to be called then you'll need to pass a reference to the function and call bind multiple times:

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 );
}

The single-threaded nature of JS will equate to these event binding happening simultaneously.

You could of course create your own helper function to allow bind( Array eventNames, Function callback ).

本文标签: javascriptPusher How to bind to 100s of eventsStack Overflow