-
根据存储策略来设置对应的 objectName
-
RC:IWNormalMsg:客户端存储,支持离线消息机制,且存入服务端历史消息,计入未读消息数
-
RC:IWCmdMsg:客户端不存储,支持离线消息机制,不计入未读消息数
-
RC:IWStatusMsg:客户端不存储,服务端不存储,不计入未读消息数
-
RC:IWStorageMsg:客户端存储,支持离线消息机制,且存入服务端历史消息,不计入未读消息数
-
-
设置需要携带的 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