Docs/Channels
Public Channels
Unauthenticated broadcast channel specification and wire protocol.
Specification
Public channels allow unrestricted broadcasting and subscription. Any client with a valid application key can subscribe to a public channel without server-side authorization.
Channel Naming Rules
| Constraint | Specification |
|---|---|
| Max Length | 164 characters |
| Allowed Characters | a-z, A-Z, 0-9, _, -, =, @, ,, ., ; |
| Validation Regex | ^[a-zA-Z0-9_\-=@,.;]+$ |
| Forbidden Characters | Whitespace, # (reserved for internal routing) |
| Forbidden Prefixes | Must not begin with private- or presence- |
Wire Protocol Frames
1. Subscription (pusher:subscribe)
Client sends subscription request:
json
{
"event": "pusher:subscribe",
"data": {
"channel": "orders"
}
}2. Confirmation (pusher_internal:subscription_succeeded)
Server confirms channel subscription:
json
{
"event": "pusher_internal:subscription_succeeded",
"channel": "orders",
"data": "{}"
}3. Unsubscription (pusher:unsubscribe)
Client terminates subscription:
json
{
"event": "pusher:unsubscribe",
"data": {
"channel": "orders"
}
}Client SDK Reference
ts
// Subscribe to channel
const channel = pusher.subscribe('orders')
// Bind event listener
channel.bind('order-created', (payload: { id: string }) => {
console.log('New order:', payload.id)
})
// Unbind specific event listener
channel.unbind('order-created')
// Terminate channel subscription
pusher.unsubscribe('orders')