如何在服务端发送 SDK 提供的自定义消息

  1. 根据存储策略来设置对应的 objectName

    • RC:IWNormalMsg:客户端存储,支持离线消息机制,且存入服务端历史消息,计入未读消息数

    • RC:IWCmdMsg:客户端不存储,支持离线消息机制,不计入未读消息数

    • RC:IWStatusMsg:客户端不存储,服务端不存储,不计入未读消息数

    • RC:IWStorageMsg:客户端存储,支持离线消息机制,且存入服务端历史消息,不计入未读消息数

  2. 设置需要携带的 content 信息

    • msgType:标识当前消息的标识符,同一种类型消息需要保持一致。

    • msgFields:当前消息需要携带的内容键值对,仅支持 string string 格式。

最终发送的内容 JSON 参考如下:


{

"appId": "xxxxxxxxxxx",

"fromUserId": "1801",

"targetId": "1101",

"targetType": 1,

"GroupId": "",

"classname": "RC:IWNormalMsg",

"content": {

"msgType": "idf",

"msgFields": {

"key1": "value1",

"key": "value"

}

},

"dateTime": "2023-01-28 16:57:11.262",

"timestamp": 1674896231262,

"msgUID": "C5UU-C4MN-JDK5-E111",

"source": "Android",

"isSensitiveWord": "false"

}

服务端发送此消息后,Flutter 客户端会收到一条 RCIMIWCustomMessage 类型的消息

并会根据不同的 objectName 解析成不同的 policy,

RC:IWNormalMsg 为 normal, RC:IWCmdMsg 为 command,RC:IWStatusMsg 为 status,RC:IWStorageMsg 为 storage,

content中的 msgType 会解析为 identifier,

content中的 msgFields 会解析为 fields