如何订阅SurrealDB表变更?该功能是否已实现或待规划?
SurrealDB WebSocket 实时订阅功能说明
这个实时推送同步功能已经实现,WebSocket连接后的订阅操作可以通过以下方式完成:
- 首先完成WebSocket连接的认证流程(如果开启了权限控制),发送
signin命令完成登录:signin { user: "your-user", pass: "your-pass" }; - 使用
live命令创建订阅,支持两种方式:- 订阅整张表的所有变更:
live your_table_name; - 基于查询条件订阅特定数据的变更:
live SELECT * FROM your_table_name WHERE status = 'active';
- 订阅整张表的所有变更:
- 订阅成功后,服务器会返回包含订阅ID的响应。后续当目标数据发生插入、更新、删除操作时,服务器会主动通过WebSocket推送消息,消息结构包含操作类型(
CREATE/UPDATE/DELETE)、变更数据及时间戳等信息。 - 若要终止订阅,使用
kill命令加上对应的订阅ID即可:kill 'subscription-id-xxxx';
部分旧版文档可能未及时更新该功能的细节,你可以通过SurrealDB的官方SDK(如JS、Rust SDK)中的封装方法快速验证,SDK通常会把live订阅封装成更易用的事件监听接口。
内容的提问来源于stack exchange,提问作者iloginow
相关产品推荐
相关产品推荐

