on()
on(type, filter, callback): RealtimeChannel
监听频道事件。presence 与 postgres_changes 必须在 subscribe() 之前绑定。
参数
type
"broadcast" | "presence" | "postgres_changes" | "system"
事件类型
filter
object
过滤条件,如 { event } 或 Postgres CDC filter
callback
(payload) => void
事件回调
返回
RealtimeChannel
RealtimeChannel
当前频道,便于链式调用
示例
- Broadcast
- Presence
- Postgres CDC
channel.on("broadcast", { event: "cursor-pos" }, (payload) => {
console.log(payload.event, payload.payload);
});
channel
.on("presence", { event: "sync" }, () => {
console.log(channel.presenceState());
})
.on("presence", { event: "join" }, ({ newPresences }) => {
console.log(newPresences);
})
.on("presence", { event: "leave" }, ({ leftPresences }) => {
console.log(leftPresences);
});
channel.on(
"postgres_changes",
{ event: "*", schema: "public", table: "messages" },
(payload) => {
console.log(payload.eventType, payload.new, payload.old);
}
);