Channels
Each application can have one channel or many, and each client can choose which channels it subscribes to.
Channels provide:
- A way of filtering data For example, in a chat application there may be a channel for people who want to discuss 'dogs'
- A way of controlling access to different streams of information. For example, a project management application would want to authorize people to get updates about 'secret-projectX'
We strongly recommend that channels are used to filter your data and that it is not achieved using events. This is because all events published to a channel are sent to all subscribers, regardless of their event binding.
Channels don't need to be explicitly created, and areinstantiated on client demand. This means that creating a channel is easy. Just tell a client to subscribe to it.
There are 4 types of channels at the moment:
- Public channels can be subscribed to by anyone who knows their name
- Private channels should have a
private-
prefix. They introduce a mechanism which lets your server control access to the data you are broadcasting - Private encrypted channels should have a
private-encrypted-
prefix. They extend the auth mechanism of private channels, adding encryption of the data payloads so that not even Pusher can get access to it without authentication. - Presence channels should have a
presence-
prefix and are an extension of private channels. They let you 'register' user information on subscription, and let other members of the channel know who's online
private-
and presence-
are included in the character count).Channel names should only include lower and uppercase letters, numbers and the following punctuation _ - = @ , . ;
As an example this is a valid channel name:
1
foo-bar_1234@=,.;
If a channel has been subscribed to already it is possible to access channels by name, through the pusher.channel
function:
JavaScript
1
var channel = pusher.channel(channelName);
- channelName (String)
- The name of the channel to retrieve