Channels
Channel name rules
Канал это маршрут для публикаций
Клиенты подписываются на канал и получают сообщения опубликованные в него
Каналы эфемерны, их не надо создавать или удалять явно, они существуют пока существуют подписчики (подписчик подписался - канал создался, подписчиков не осталось - канал удалился)
Соответственно чтобы было куда публиковать сообщения, нужно чтобы были подписчики
Неймспейсы позволяют определять кастомные опции для групп каналов
Имя канала может содержать только ASCII символы и быть не длиннее 255 символов
Несколько символов зарезервированы:
-
:
– for namespace channel boundary. Неймспейс это часть имени канала, поэтомуpublic:chat
иchat
это два разных канала -
$
– for private channel prefix. Если имя канала начинается с доллара, то это приватный канал. На такой канал клиента должен подписать бэкенд (ex:$public:chat
) -
#
– for user channel boundary. После решетки через запятую указываются user id юзеров которые могут подписываться на этот канал (ex:dialog#42,43
) -
*
– for the future Centrifugo needs -
&
– for the future Centrifugo needs -
/
– for the future Centrifugo needs
Channel options
Используя опции можно изменять поведение каналов глобально или per namespace
-
publish
- позволяет клиентам публиковать сообщения. Не рекомендуется, но иногда полезно -
subscribe_to_publish
- заставляет клиента быть подписанным на канал куда он хочет публиковать -
anonymous
- влючает анонимный доступ к каналу -
presence
- включает инфу по каналам (подписчики, пользователи, и тд) -
presence_disable_for_client
- запрещает пользователям смотреть presence инфу -
join_leave
- включает/выключает join/leave messages -
history_size
- размер истории для каналов -
history_ttl
- длительность истории (чтобы история работала нужно указывать обе опции одновременно) -
position
- позволяет центрифуге следить за положением пользователя в стриме (не догнал как это полезно) -
recover
- связано с предыдущей опцией -
history_disable_for_client
- позволяет оставить доступ к истории только для server-side api -
protected
- управляет возможностью пользователей подписываться на любые каналы или только на user-limited -
proxy_subscribe
- проксевая опция -
proxy_publish
- проксевая опция -
subscribe_proxy_name
- проксевая опция -
publish_proxy_name
- проксевая опция
Опции можно прописывать в корне конфига (тогда они будут глобальными), а можно описать для каждого неймспейса отдельно
{
"token_hmac_secret_key": "very-long-secret-key",
"api_key": "secret-api-key",
"anonymous": true,
"publish": true,
"presence": true,
"join_leave": true,
"history_size": 10,
"history_ttl": "30s",
"namespaces": [
{
"name": "public",
"publish": true,
"anonymous": true,
"history_size": 10,
"history_ttl": "300s",
"recover": true
},
{
"name": "gossips",
"presence": true,
"join_leave": true
}
]
}
No Comments