跳转到主要内容

概述

实时有两个表面:
  • REST API 用于频道管理、消息历史、交付统计、权限和保留设置。
  • Socket.IO 用于实时订阅、发布、在线状态和已交付事件。
REST API 不流式传输消息。使用 Socket.IO 连接或 TypeScript SDK 来获取实时事件。

身份验证

管理员 REST 端点需要项目管理员令牌或 API 密钥。
您也可以使用以下方式传递 API 密钥:
Socket.IO 连接通过 Socket.IO auth 对象进行身份验证:
服务器/管理员客户端可以传递 API 密钥:

Socket.IO 发布/订阅

当您没有使用 InsForge SDK 时,请安装 Socket.IO 客户端:

连接并订阅

监听事件

发布

套接字必须成功订阅通道才能发布到该通道。

取消订阅

套接字事件

事件方向说明
realtime:subscribe客户端到服务器订阅通道。确认返回成功/错误和存在快照。
realtime:unsubscribe客户端到服务器离开通道。
realtime:publish客户端到服务器将用户消息插入实时管道。
Custom event name服务器到客户端交付的消息,在消息eventName下发出。
presence:join服务器到客户端一个逻辑成员在通道中变得存在。
presence:leave服务器到客户端一个逻辑成员不再在通道中。
realtime:error服务器到客户端订阅或发布失败。

通道模式

在客户端订阅之前创建通道定义。
模式匹配
ordersorders
order:%order:123, order:456
chat:%:messageschat:room-1:messages
模式匹配使用SQLLIKE,因此%是通配符。_在通道模式中不被接受,因为它也是SQL通配符。

通道

列出通道

响应:

创建通道

请求正文:
字段类型必需说明
patternstring通道模式。
descriptionstring人类可读的说明。
webhookUrlsstring[]每条交付的消息的Webhook URL。
enabledboolean默认为true。禁用的通道无法加入或交付到。

获取通道

更新通道

删除通道

消息历史被保留。删除的通道将现有消息channelId值设置为null

消息

列出消息

查询参数:
参数类型说明
channelIduuid按通道ID过滤。
eventNamestring按事件名称过滤。
limitinteger1到1000。默认为100。
offsetinteger默认为0。
响应:

消息统计

查询参数:
参数类型说明
channelIduuid按通道ID过滤统计。
sincedate-time仅包含在此时间戳之后创建的消息。
retentionDays: null意味着消息无限期保留。

权限

返回用户定义的RLS策略,用于:
  • realtime.channels上的订阅检查。
  • realtime.messages上的发布检查。

配置

获取实时配置

更新实时配置

使用null以无限期保留消息。正整数保留消息指定天数。

Webhooks

当通道有webhookUrls时,通过该通道交付的每条消息都会被发布到每个URL。 请求正文是原始消息有效负载。标头标识交付:
标头
X-InsForge-Event事件名称
X-InsForge-Channel已解决的通道名称
X-InsForge-Message-Id消息UUID
交付尝试反映在消息历史中的whAudienceCountwhDeliveredCount中。