消息体约定
消息体是通信过程中多个客户端之间的约定通信协议,客户端与服务器都需要基于该通信协议来发送与接收消息
完整消息体示意如下:
```javascript
// 示例一:发送文本
{
channelId: '656565321231', // 会话id
channelType: 1, // 会话类型
from:{ // 消息发送人信息(源)
id:'1',
name:'康养小花',
avatar:'https://download.zhengyunkeji.net/pro/132456423.jpg'
},
to:{ // 消息接收人信息(目的)
id:'2',
name:'康养小蓝',
avatar:'https://download.zhengyunkeji.net/pro/465465465.jpg'
},
content:'你好呀,我是康养智家小小小小小花。很高兴认识你!', // 消息内容
msgType: 1 // 消息内容的类型
}
// 示例二:发送图片
{
channelId: '656565321231', // 会话id
channelType: 1, // 会话类型
from:{ // 消息发送人信息(源)
id:'2',
name:'康养小蓝',
avatar:'https://download.zhengyunkeji.net/pro/132456423.jpg'
},
to:{ // 消息接收人信息(目的)
id:'1',
name:'康养小花',
avatar:'https://download.zhengyunkeji.net/pro/465465465.jpg'
},
content:'{"size":456,"src":"https:download.zhengyunkeji.net/pro/554982222114541.jpg"}', // 消息内容
msgType: 2 // 消息内容的类型
}
```
其中消息内容目前定义7种大类型
分别为
**1-文本; 2-图片; 3-语音; 4-视频; 5-文件; 6-富文本; 7-事件**
>w 注意
消息内容(content)是string类型,不同的消息类型(msgType),解析方式有所不同
例如 图片格式
当发送时需 将content使用 JSON.stringify() 序列化成字符串后放入消息体中发送
当接收时需 将content使用 JSON.parse() 解析后取值读取
文本:
格式如下
```javascript
'你好呀,我是康养智家小智。很高兴认识你!'
```
图片:
格式如下
```javascript
{
size:456, //体积,单位是kb
w:1080, // 宽
h:960, // 高
src:'https:download.zhengyunkeji.net/pro/554982222114541.jpg'
}
```
语音:
格式如下
```javascript
{
duration: 31, //时长,单位是s
size: 50, //体积,单位是kb
src:'https:download.zhengyunkeji.net/pro/47541122444553341.wav'//文件下载地址
}
```
视频:
格式如下
```javascript
{
duration: 31, //时长,单位是s
size: 2048, //体积,单位是kb
src:'https://download.zhengyunkeji.net/pro/5435434872122114.mp4' //文件下载地址
}
```
文件:
格式如下
```javascript
{
name: '康养知识.txt', //文件原名称
size: 30, //体积,单位是kb
src:'https://download.zhengyunkeji.net/pro/55215463321121.txt'//文件下载地址
}
```
富文本:
格式如下
```javascript
{
title: '康养知识大讲堂', //标题
text: '<p>天冷了,对自己好一点...</p>', //内容
href: 'https://app.zhengyunkeji.net/ticket/index.html' // 内容跳转链接
}
```
事件:
格式如下
```javascript
{
type: 'friendApply', //事件类型
text: 'XX申请加您为好友', //
data : [object] //携带的一些其他参数
}
```
>w 再次提醒
消息内容(content)是string类型,不同的消息类型(msgType),解析方式有所不同
例如 图片格式
当发送时需 将content使用 JSON.stringify() 序列化成字符串后放入消息体中发送
当接收时需 将content使用 JSON.parse() 解析后取值读取