Uni-app 端与其他客户端自定义消息的互通

1. 目前其他客户端自定消息的消息类型字段可以自己定义,但是uniapp中不支持任意定义,只支持以下四种固定类型:

0 —— 命令消息,不存储、不计入未读计数 RC:IWCmdMsg

1 —— 存储消息,存储、不计入未读计数 RC:IWStorageMsg

2 —— 普通消息,存储、计入未读计数 RC:IWNormalMsg

3 —— 状态消息,不存储不计数 RC:IWStatusMsg

2. 如果有多端要与uniapp互通自定义消息,其他端也都需要注册uni端使用的这四个类型中的,uni-app 端不需要注册。

3. 参考格式

uni-app 端自定义消息封装格式参考:

const msg = {
    conversationType: conversationType,
    targetId: targetId,
    content: {
        objectName: 'testMsgType',
        customType: 2,    //2即对应上面的普通消息类型
        customFields: JSON.parse(customFields),
        userInfo: JSON.parse(userInfo)
     },
     pushContent: pushContent,
     pushData: pushData,
}

其他客户端参考以下格式:

注:msgType为字符串类型,msgFields是json类型,msgFields里面结构不做限制

//自定义消息类型,请根据实际需求四选一,即其他客户端需要注册的自定义消息类型
objectName:'RC:IWNormalMsg'    //该字段对应上面uniapp端中customType字段
content: {
   //自定义消息类型:相当于二级消息类型分类,用于满足多类型情况(非必须)
   msgType:'testMsgType'    //该字段对应上面uniapp端中objectName字段
   //自定义消息内容(必须)
   msgFields:{     //该字段对应uniapp端中customFields字段
       key1:'数据一'
       key2:'数据二'
       。。。
   } 
}