数据包长度+json数据
00000+json数据
数据包例子:
00089{"Type":"Msg","From":"a001","Pass":"a001","To":"a002","Msg":"12:31:25","VerID":"V2"}
数据包格式
客户端发送的数据包:
1.登录+收发信数据包
用途:登录/发送信息/接收信息
00000 //数据包长度,不足5位前面补0
{
"Type":"Msg", //数据包类型
"From":"发件人", //发信人,也就是你自己
"Pass":"密码", //密码
"To":"收件人", //[可选]收件人,如果是多个收件人,用符号 | 隔开. 没有该字段,代表广播信息。
"你的字段1":"你的内容1", //[可选]自定义的字段和内容
....
"你的字段n":"你的内容n" //[可选]自定义的字段和内容
}
数据包例子1:
00089{"Type":"Msg","From":"a001","Pass":"a001","To":"a002","Msg":"12:31:25","VerID":"V2"}
注意:A:如需登录服务器,可以自己给自己发一条信息,也可以给收件人发一条通知信息.
B:如果收件人包括 Anyone(A大写)将会把该信息发给所有的订阅者.
2.Ping/Pong
用途: 心跳协议,用于查看和服务器是否畅通,或者看对方是否在线,
收件人可以为空,ping服务器 ,或者不为空,ping对方
00000 //数据包长度,不足5位前面补0
{"Type":"Ping",
"From":"发信人",
"To":"收件人1", //如果收件人为空,则ping 服务器是否在线
"VerID":"V2"
}
ping数据包例子:
00059{"Type":"Ping","From":"a001","To":"a003","VerID":"V2"}
3.订阅信息
用途:用于订阅接收指定终端设备的信息.(支持未登录的匿名用户订阅)
00000 //数据包长度,不足5位前面补0
{
"Type":"Subscribe",
"Publisher":"发布人", //订阅那些设备的信息,其中发布人为终端的ID,多用户可以用|隔开
"VerID":"V2"
};
提问Q1:如何发布信息?
A1: 发信息的时候,收件人为 Anyone 就会把该信息发给所有订阅者。
****************************************************************************
服务器返回的数据包:
1. pong数据
00000
{"Type":"Pong",
"From":"a003", //对方的id
"Status":"0", //是否在线 0--离线 1---在线
"VerID":"V2"}
例:00060{"Type":"Pong","From":"a003","Status":"0","VerID":"V2"}
2. auth是否登录成功 (第一次发送数据的时候返回)
00044{"Type":"auth","status":1,"VerID":"V2"} ----> status =1 成功 status !=1 失败
3. msg接收信息
详见 [1.登录+收发信数据包]
4. Login要求登录
服务器未收到登录数据,需根据协议[1.登录+收发信数据包]进行登录.
数据例子:00077{"Type":"Login","Token":"124772becf5678ff432868dc2c1a306c","VerID":"V2"}