Channels are identified by names that are styled as the absolute path component
of a URI without parameters as defined by RFC2396:
channel_name = "/" channel_segments channel_segments = channel_segment *( "/" channel_segment ) channel_segment = token
The channel name consists of an initial "/" followed by an optional sequence of
path segments separated by a single slash "/" character. Within a path segment,
the character "/" is reserved.
Example non-meta channel names are:
/foo /foo/bar /foo-bar/(foobar) /some/channel
Publish / Subscribe Channels
Channels are by default broadcast publish subscribe, so that all subscribers will see all messages published to the channel on the server.
Messages may be privately delivered to a specific client + channel combination and bypass any default routing.
Channels starting with /meta/ are reserved for the use of the protocol (eg /meta/handshake)
Channels starting with /service are server only publish/subscribe. Messages published to /service channels will only be delivered to server side clients.
Messages may still be explicitly delivered to a client on a /service channel
A set of channels may be specified with a channel globbing pattern:
channel_pattern = *( "/" channel_segment ) "/" wild_card wild_card = "*" | "**"
The channel patterns support only trailing wildcards of either "*" to match a
single segment or "**" to match multiple segments. Example channel patterns
- Matches /foo/bar and /foo/boo. Does not match /foo, /foobar or /foo/bar/ boo.
- Matches /foo/bar, /foo/boo and /foo/bar/boo. Does not match /foo, /foobar or /foobar/boo
Channel Usage examples