JavaScript SDK:实时参考
实时服务和通道的每个方法都有其签名。
6分钟 读取·级别 参考·修改于 2026年10月12日
该英文文本是根据法文原文自动生成的,尚未经过审查。
该页面已自动翻译。英文版具有权威性。
#
班级
实时服务
| 财产 | 描述 |
|---|---|
get connectionState(): ConnectionState | 当前连接状态。 |
get isConnected(): boolean | WebSocket当前是否已连接。 |
| 方法 | 描述 |
|---|---|
onStateChange(callback: (state: ConnectionState) => void): () => void | 监听连接状态的变化。 |
onError(callback: (err: RealtimeConnectionError) => void): () => void | 监听实时连接传输错误。 |
connect(): void | 确保 WebSocket 连接已打开。 |
refreshToken(token: string): void | 刷新现有连接上的 JWT 令牌(不断开连接)。 |
setAuth(token?: string): void | 显式定义/刷新用于私有和广播频道授权的令牌(奇偶校验 @supabase/realtime-js setAuth)。 |
httpBroadcast(channel: string, event: string, payload?: Record<string, unknown>, options?: HttpBroadcastOptions): Promise<AuraResponse<null>> | 通过 HTTP (REST) 发送广播,无需打开 WebSocket 连接(奇偶校验 @supabase/realtime-js)。 |
setAutoReconnect(enabled: boolean, maxAttempts?: number): void | 启用/禁用自动重新连接(默认情况下启用)。 |
disconnect(): void | 断开 WebSocket 连接并清理所有通道。 |
channel(name: string, options?: ChannelConfig): AuraChannel | 按名称创建或检索频道。 |
removeChannel(channel: string | AuraChannel): void | 按名称或 AuraChannel 实例删除通道。 |
getChannels(): AuraChannel[] | 列出活动频道。 |
removeAllChannels(): void | 删除所有频道和订阅。 |
#
班级
光环频道
具有 Supabase兼容可链接 API 的实时通道。
| 财产 | 描述 |
|---|---|
readonly name: string | 传递给 realtime.channel(name)的通道名称。 |
get fullName(): string | 带项目前缀的完整通道名称(用于服务器协议) |
get isSubscribed(): boolean | 该频道是否已被订阅。 |
| 方法 | 描述 |
|---|---|
on<TRow = Record<string, unknown>>(type: 'postgres_changes', filter: PostgresChangesFilter & { event: 'INSERT'; }, callback: (payload: RealtimePostgresInsertPayload<TRow>) => void): AuraChannelSubscriptionon<TRow = Record<string, unknown>>(type: 'postgres_changes', filter: PostgresChangesFilter & { event: 'UPDATE'; }, callback: (payload: RealtimePostgresUpdatePayload<TRow>) => void): AuraChannelSubscriptionon<TRow = Record<string, unknown>>(type: 'postgres_changes', filter: PostgresChangesFilter & { event: 'DELETE'; }, callback: (payload: RealtimePostgresDeletePayload<TRow>) => void): AuraChannelSubscriptionon<TRow = Record<string, unknown>>(type: 'postgres_changes', filter: PostgresChangesFilter, callback: (payload: RealtimePostgresChangesPayload<TRow>) => void): AuraChannelSubscriptionon<TPayload = Record<string, unknown>>(type: 'broadcast', filter: BroadcastFilter, callback: (payload: RealtimeBroadcastEvent<TPayload>) => void): AuraChannelSubscriptionon(type: 'presence', filter: PresenceFilter, callback: (payload: PresenceState | RealtimeEvent | Record<string, unknown>) => void): AuraChannelSubscription | 通过 INSERT 过滤注册 PostgreSQL (CDC) 事件的侦听器。 |
off(type?: RealtimeListenType, filter?: PostgresChangesFilter | BroadcastFilter | PresenceFilter, callback?: (payload: unknown) => void): this | 从通道中删除一个或多个侦听器,而不关闭通道或切断 WebSocket。 |
subscribe(callback?: SubscribeCallback, timeoutMs?: number): this | 订阅频道。 |
unsubscribe(): void | 取消订阅频道。 |
send(message: BroadcastPayload): Promise<BroadcastSendStatus> | 在频道上发送广播消息。 |
track(state: Record<string, unknown>): Promise<'ok' | 'error'> | 跟踪该客户端的在线状态。 |
untrack(): Promise<'ok' | 'error'> | 停止跟踪存在。 |
presenceState(): PresenceState | 获取该频道的当前状态。 |
生成的页面
该页面是根据 SDK 的类型声明和注释生成的,因此它不会偏离已发布的代码。有关工作示例,请阅读指南。
最后更新· 2026年10月12日