贝壳物联用户相关通讯协议、API说明
贝壳物联设计理念是在实时通讯层面设备和用户是平等的,用户和设备除了在登录方法、实时数据上传方面有所不同,其他沟通指令、查询指令绝大部分都是通用的。本文着重介绍用户和设备的通讯协议不同之处,在阅读之前请先了解贝壳物联总体通讯协议。
用户通讯协议分为两部分:
1、非实时通讯,以传统http(S) API 方式实现,详见:贝壳物联用户API;
2、实时通讯,以tcp、websocket长连接方式实现。
下面介绍实时通讯部分。
由于用户通讯安全级别较高,所以只能使用有ssl加密端口。
tcp+ssl通讯端口:www.bigiot.net:8585
websocket+ssl(wss)通讯端口:www.bigiot.net:8484
ssl证书与域名绑定,所以不可以直接使用IP建立连接。
同总体通讯协议中规定。
{"M":"login","ID":"xx1","K":"xx2"}\n
说明: 此指令正确登录后将迫使其他地方登录的用户下线,网页版除外。
M —— 固定(Method)
login —— 固定,用户登录指令
ID —— 固定
xx1 —— 可变,用户ID,在会员中心查看
K —— 固定
xx2 —— 可变,用户APIKEY,在用户中心→个人信息中生成。
返回结果
{"M":"loginok","ID":"xx1","N":"xx2(api)","T":"xx3"}\n
说明: 此指令正确登录后将迫使其他地方使用此命令登录的用户下线。
M —— 固定(Method)
loginok —— 固定,用户登录成功指令
ID —— 固定
xx1 —— 可变,用户登录成功后,用于通讯的唯一ID,其组成为字符“U"+用户ID,如U24
N —— 固定(Name)
xx2 —— 可变,登录成功的用户的名称,后面加(api),标识通过api接口登录
T —— 固定(time)
xx3 —— 可变,服务器发送信息时的时间戳,自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。
注:登录成功后需注意以下事项
要保持一直在线,请一分钟内与服务器有效通讯一次;
用户将收到名下所有设备的实时数;
用户将收到名下所有设备触发的报警数据;
用户将收到名下所有设备的上下线通知;
{"M":"getdata","ID":"xx1"}\n
说明:该命令用于获取其他用户公开设备的实时数据流,可以用于在自己的APP中查看公开设备实时数据。
M —— 固定(Method)
getdata —— 固定,获取实时数据指令
ID —— 固定
xx1 —— 可变,公开设备的ID。
拒收已获取的实时数据
{"M":"refusedata","ID":"xx1"}\n
说明:不查看公开设备实时数据时,及时拒收。
M —— 固定(Method)
refusedata —— 固定,拒收已获取的实时数据指令
ID —— 固定
xx1 —— 可变,公开设备的ID。
其他指令同设备实时通讯指令,详见:贝壳物联平台通讯协议