跳转至

消息路由

功能概述

  1. 支持将单聊、讨论组、群组、聊天室、客服的消息数据同步到开发者应用服务器。 该服务需要开通 IM 商用版后才有使用。

  2. 调用 Server API 接口发送的消息,默认不会通过消息路由服务。

  3. 默认消息中包含屏蔽敏感词时,不会同步到应用服务器,如果含有替换敏感词时,会将消息中的敏感词替换成设置的内容同步到应用服务器。如需要将含有屏蔽敏感词的消息也路由到应用服务器,可提交工单申请开通。

  4. 路由的消息为图片、视频类消息时,开发者如果需要获取图片、视频等文件信息,可通过地址进行下载,融云文件存储有效期为 6 个月。

  5. 如果公司网络有 IP 访问限制需要将以下 IP 地址加入到白名单中,才可以使用消息路由服务:

    120.92.12.217、120.92.12.60、120.92.12.253、120.92.12.113、120.92.12.29、120.92.12.214、120.92.12.164、120.92.12.153、120.92.12.204、120.92.12.138、120.92.13.82、120.92.13.83、120.92.13.84、120.92.13.85、120.131.13.147

使用场景

  1. 存储聊天记录:可通过开启此服务,实时同步用户发送的消息至应用服务器,由应用服务器进行存储。

  2. 数据迁移:实现第三方通讯云服务到融云的平滑迁移,您的新客户端(集成融云 SDK)向老客户端(即集成原第三方 SDK)发送消息时,融云会通过消息路由服务调用原第三方的相应服务端接口,实现向指定老客户端(即集成原第三方 SDK)用户发送消息。详细请查看如何实现第三方通讯云服务到融云的平滑迁移

示例说明

HTTP 方法:POST

表单参数

名称 类型 说明
fromUserId String 发送用户 Id。
toUserId String 接收用户 Id,即为客户端 targetId。
objectName String 消息类型,文本消息 RC:TxtMsg 、 图片消息 RC:ImgMsg 、语音消息 RC:VcMsg 、图文消息 RC:ImgTextMsg 、位置消息 RC:LBSMsg 、添加联系人消息 RC:ContactNtf 、提示条通知消息 RC:InfoNtf、资料通知消息RC:ProfileNtf、通用命令通知消息RC:CmdNtf` ,详细请参见消息类型说明文档
content String 发送消息内容,参考融云消息类型表.示例说明
channelType String 会话类型,二人会话是 PERSON 、讨论组会话是 PERSONS 、群组会话是 GROUP、聊天室会话是TEMPGROUP、客服会话是CUSTOMERSERVICE、 系统通知是NOTIFY、应用公众服务是MC、公众服务是MP。对应客户端 SDK 中ConversationType` 类型,二人会话是 1 、讨论组会话是 2 、群组会话是 3 、聊天室会话是 4 、客服会话是 5 、 系统通知是 6 、应用公众服务是 7 、公众服务是 8。
msgTimestamp String 服务端收到客户端发送消息时的服务器时间(1970年到现在的毫秒数)。
msgUID String 可通过 msgUID 确定消息唯一。
sensitiveType Int 消息中是否含有敏感词标识,0 为不含有敏感词,1 为含有屏蔽敏感词,2 为含有替换敏感词。消息路由功能默认含有屏蔽敏感词的消息不进行路由,可提交工单开通含有敏感词的消息路由功能,未开通情况下 sensitiveType 值默认为 0 不代表任何意义。开通后可通过该属性判断消息中是否含有敏感词。目前支持单聊、群聊、聊天室会话类型,其他会话类型默认为 0 ,开通后含有屏蔽敏感词的消息也不会进行下发,只会进行消息路由。
source String 标识消息的发送源头,包括:iOS、Android、Websocket、MiniProgram(小程序)。目前支持单聊、群聊会话类型,其他会话类型为空。
groupUserIds String[] channelType 为 GROUP 时此参数有效,显示为群组中指定接收消息的用户 ID 数组,该条消息为群组定向消息。非定向消息时内容为空,如指定的用户不在群组中内容也为空。

提示

同步消息时需要服务提供应答 200,收到应答后表示消息同步成功,如果应答超时 5 秒,融云会再尝试推送 2 次,如果仍然失败,融云将不再推送此消息,如短时间内有大面积超时,将暂停推送,1 分钟后会继续推送。

示例

为了验证数据有效性并确保调用者为融云 Server,每个请求前添加数据签名,详细参见 API 接收签名规则,签名信息参数在接收地址的 URL 上提供。

假设开发者注册的接收地址:http://example.com/receive_message.php

Request:

POST /receive_message.php?signTimestamp=1408710653491&nonce=14314&signature=45beb7cc7307889a8e711219a47b7cf6a5b000e8 HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
User-Agent: RongCloud/1.0

fromUserId=123&toUserId=456&objectName=RC%3ATxtMsg&content=%7B"content"%3A"hello"%7D&channelType=PERSON&msgTimestamp=1408710653491&msgUID=596E-P5PG-4FS2-7OJK&groupUserIds=[543,567]