注意
通信过程中,互传数据包均由4字节包头+N字节数据体构成,包头值为数据体的字节长度。
建立连接后,APP端向服务端发送握手数据,服务端响应后,APP端持续发送心跳包(5秒
间隔),若连续5次未收到服务器心跳包响应,APP端认为与服务器断开。
握手数据
{
"cmd": 54,
"handshake": "Hello the Socket"
}
心跳包
{
"cmd": 14
}
视频连线中(门铃-APP)
{
"cmd": 20,
"id":"doorbell_2019040280",//门铃ID[类别+编码]
"time": 1553132625,//Unix时间戳
"status": 1,//传输状态[1传输中 2传输完成]
"type": 4,//数据类型[1Json 2门铃 3音频 4视频]
"data": [0, 0, 0, 3, 0, 0, 10]//数据内容
}
type=1预留字段,type=2访客按了门铃[data为抓拍访客照片],type=3或4为视频连线中[data为摄像头数据]
视频连线中(APP-门铃)
{
"cmd": 20,
"id":"doorbell_2019040280",//门铃ID[类别+编码]
"time": 1553132625,//Unix时间戳
"status": 1,//传输状态[1传输中 2传输完成]
"type": 3,//数据类型[1开始读取摄像头 2结束读取摄像头 3上传手机麦克风音频]
"data": [0, 0, 0, 3, 0, 0, 10]//数据内容
}
门铃端收到type=1时开始发送音视频到APP, type=2时终止发送,type=3时data为手机麦克风音频
网友评论