大家好,我们又发布了一个坳口的功能,实时通信的 。简单地说,现在用户可以通过 作为 hook,修改实时通信默认的执行流程,增加应用自定义的业务逻辑。
第一阶段我们支持两个 hook:_messageReceived
(消息到达服务器)和 _receiversOffline
(收件人离线)。
_messageReceived
发生在消息到达服务器,服务器解析完收件人 id 之后,消息存入离线队列之前。这个阶段云函数可以获得的信息包括消息内容、收件人 id 列表、时间戳、发件人等等,用户的云代码可以通过返回值修改消息内容,修改收件人列表甚至直接丢弃消息。这个 hook 可以帮助用户实现自定义的消息处理,甚至实现请求 - 响应式的模型。
潜在的用例:
- 更新数据库,例如记录用户最近发消息时间
- 修改消息内容,删除广告,敏感信息(尽管我们已经内置了敏感词过滤)
- 修改收件人列表,自动转发消息到他人
- 完全颠覆传统实时通信模型,执行服务器端业务逻辑
_receiversOffline
发生在消息发送完成后,离线通知触发前。这个阶段云函数可以获得消息内容,离线收件人 id,关联的群组 id 等。用户可以通过云代码返回值指定离线通知的内容,被通知的用户 id,或者直接跳过默认的推送通知(比如在 hook 中触发短信、邮件等其他通知方式)。这个 hook 可以解决之前大家反馈比较多的推送消息不能动态定义的问题。
云代码集成是可选功能,已有的功能不受此次升级影响。关于云代码集成更完整的参数列表和详细说明,请 。