公共频道
Realtime 频道默认为公共频道,除非其名称以 private- 或 presence- 开头。客户端只需公共应用密钥即可订阅,因此应将该频道视为任何持有该密钥的人都可读取。
const orders = bird.subscribe("orders");
orders.bind("order-updated", (data) => {
console.log(data);
});let orders = bird.subscribe("orders")
orders.bind("order-updated") { data in
print(data ?? "")
}val orders = bird.subscribe("orders")
orders.bind("order-updated") { data ->
println(data)
}公共频道不需要注册或授权端点。频道在至少有一个连接订阅时存在,当最后一个连接离开时消失。
何时使用公共频道
将公共频道用于每位访问者都可以读取的数据,例如构建结果、实时比分、航班信息、观看人数或状态页事件。
对于限定到用户、账户或租户的数据,请使用私有频道。公共频道订阅不需要授权,因此客户端可以尝试任何它能猜到或拼出的频道名称。
公共频道的限制
- 成员身份:公共频道不跟踪成员,也不公开成员列表。bird:member_added 和 bird:member_removed 事件属于 presence 频道。
- 客户端事件:公共频道拒绝名称以 client- 开头的事件。对于客户端发起的事件,请使用经过授权的私有频道或 presence 频道。
连接计数
连接计数适用于所有频道类型。启用 Connection counting 和 Connection count events 即可接收包含已订阅连接数量的 bird:connection_count。
命名
频道名称区分大小写,最多可包含 164 个字母、数字以及以下字符:_ - = @ , . ;。例如,Orders 和 orders 标识的是不同的频道。
不要在公共频道名称中包含敏感或可识别客户身份的数据。orders 不会泄露任何客户信息。orders-user-4821 则会向任何能够访问该应用的人暴露用户 4821 的存在。
后续步骤
- 私有频道将订阅限制为经过后端批准的客户端。
- 发布事件介绍如何从服务器发布事件并广播到多个频道。
- Realtime 概述定义了频道、成员和连接。
相关资源
继续查阅此主题的文档、指南和示例。资源为英文。