貝殼物聯用戶相關通訊協議、API說明
貝殼物聯設計理念是在實時通訊層面設備和用戶是平等的,用戶和設備除了在登錄方法、實時數據上傳方面有所不同,其他溝通指令、查詢指令絕大部分都是通用的。本文著重介紹用戶和設備的通訊協議不同之處,在閱讀之前請先了解貝殼物聯總體通訊協議。
用戶通訊協議分為兩部分:
1、非實時通訊,以傳統http(S) API 方式實現,詳見:貝殼物聯用戶API;
2、實時通訊,以tcp、websocket長連接方式實現。
下面介紹實時通訊部分。
由于用戶通訊安全級別較高,所以只能使用有ssl加密端口。
tcp+ssl通訊端口:www.eqytg.org:8585
websocket+ssl(wss)通訊端口:www.eqytg.org: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。
其他指令同設備實時通訊指令,詳見:貝殼物聯平臺通訊協議