Skip to content
Docs/Public Channels
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

ConstraintSpecification
Max Length164 characters
Allowed Charactersa-z, A-Z, 0-9, _, -, =, @, ,, ., ;
Validation Regex^[a-zA-Z0-9_\-=@,.;]+$
Forbidden CharactersWhitespace, # (reserved for internal routing)
Forbidden PrefixesMust 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')