val1/val2实时监控

---

--

--

-- -- -- -- --

框架结构

STM32(TCP) <=> Server <=> HTML5


微信扫一扫



开放API

协议目的
为具备TCP/WebSocket通讯能力的设备或者软件app等之间提供实时通讯服务!
工作原理
      -----------[ 服  务  器]---------------
      |	         |            |             |
 [硬件设备]  [电脑软件]   [手机app]    [网页HTML5]

演示

http演示页面:  http://im.aico.in

协议地址
TCP服务器:    im.aico.in  端口:8480

HTML5 WS :     ws://im.aico.in:8480

如需要使用协议中的发信功能,请先注册一个设备识别号和密码. 
协议格式
  数据包长度+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"}