Presence
在频道内同步在线状态。添加 .on("presence", ...) 后会自动开启接收;track() 会让其他已开启 Presence 的订阅者看到自己。
const channel = realtime.channel("presence-test", {
config: {
presence: { key: "user-1" },
},
});
channel.on("presence", { event: "sync" }, () => {
console.log("在线用户", channel.presenceState());
});
channel.on("presence", { event: "join" }, ({ newPresences }) => {
console.log("加入", newPresences);
});
channel.on("presence", { event: "leave" }, ({ leftPresences }) => {
console.log("离开", leftPresences);
});
channel.subscribe(async (status) => {
if (status !== "SUBSCRIBED") return;
await channel.track({ user_id: 1, name: "Ada" });
});
提示
config.presence.enabled(或添加 Presence 监听)只控制本端是否接收他人状态;不影响 track() 是否对他人可见。未开启时,本端 presenceState() 为空。