
IM即时通讯
安全可靠、全球互通

实时音视频
流畅稳定、省钱省力
回答:
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