貝殼物聯(lián)用戶相關(guān)通訊協(xié)議、API說明
貝殼物聯(lián)設(shè)計(jì)理念是在實(shí)時(shí)通訊層面設(shè)備和用戶是平等的,用戶和設(shè)備除了在登錄方法、實(shí)時(shí)數(shù)據(jù)上傳方面有所不同,其他溝通指令、查詢指令絕大部分都是通用的。本文著重介紹用戶和設(shè)備的通訊協(xié)議不同之處,在閱讀之前請先了解貝殼物聯(lián)總體通訊協(xié)議。
用戶通訊協(xié)議分為兩部分:
1、非實(shí)時(shí)通訊,以傳統(tǒng)http(S) API 方式實(shí)現(xiàn),詳見:貝殼物聯(lián)用戶API;
2、實(shí)時(shí)通訊,以tcp、websocket長連接方式實(shí)現(xiàn)。
下面介紹實(shí)時(shí)通訊部分。
由于用戶通訊安全級(jí)別較高,所以只能使用有ssl加密端口。
tcp+ssl通訊端口:m.placeboworld.cn:8585
websocket+ssl(wss)通訊端口:m.placeboworld.cn:8484
ssl證書與域名綁定,所以不可以直接使用IP建立連接。
同總體通訊協(xié)議中規(guī)定。
{"M":"login","ID":"xx1","K":"xx2"}\n說明: 此指令正確登錄后將迫使其他地方登錄的用戶下線,網(wǎng)頁版除外。
M —— 固定(Method)
login —— 固定,用戶登錄指令
ID —— 固定
xx1 —— 可變,用戶ID,在會(huì)員中心查看
K —— 固定
xx2 —— 可變,用戶APIKEY,在用戶中心→個(gè)人信息中生成。
返回結(jié)果
{"M":"loginok","ID":"xx1","N":"xx2(api)","T":"xx3"}\n說明: 此指令正確登錄后將迫使其他地方使用此命令登錄的用戶下線。
M —— 固定(Method)
loginok —— 固定,用戶登錄成功指令
ID —— 固定
xx1 —— 可變,用戶登錄成功后,用于通訊的唯一ID,其組成為字符“U"+用戶ID,如U24
N —— 固定(Name)
xx2 —— 可變,登錄成功的用戶的名稱,后面加(api),標(biāo)識(shí)通過api接口登錄
T —— 固定(time)
xx3 —— 可變,服務(wù)器發(fā)送信息時(shí)的時(shí)間戳,自從 Unix 紀(jì)元(格林威治時(shí)間 1970 年 1 月 1 日 00:00:00)到當(dāng)前時(shí)間的秒數(shù)。
注:登錄成功后需注意以下事項(xiàng)
要保持一直在線,請一分鐘內(nèi)與服務(wù)器有效通訊一次;
用戶將收到名下所有設(shè)備的實(shí)時(shí)數(shù);
用戶將收到名下所有設(shè)備觸發(fā)的報(bào)警數(shù)據(jù);
用戶將收到名下所有設(shè)備的上下線通知;
{"M":"getdata","ID":"xx1"}\n說明:該命令用于獲取其他用戶公開設(shè)備的實(shí)時(shí)數(shù)據(jù)流,可以用于在自己的APP中查看公開設(shè)備實(shí)時(shí)數(shù)據(jù)。
M —— 固定(Method)
getdata —— 固定,獲取實(shí)時(shí)數(shù)據(jù)指令
ID —— 固定
xx1 —— 可變,公開設(shè)備的ID。
拒收已獲取的實(shí)時(shí)數(shù)據(jù)
{"M":"refusedata","ID":"xx1"}\n說明:不查看公開設(shè)備實(shí)時(shí)數(shù)據(jù)時(shí),及時(shí)拒收。
M —— 固定(Method)
refusedata —— 固定,拒收已獲取的實(shí)時(shí)數(shù)據(jù)指令
ID —— 固定
xx1 —— 可變,公開設(shè)備的ID。
其他指令同設(shè)備實(shí)時(shí)通訊指令,詳見:貝殼物聯(lián)平臺(tái)通訊協(xié)議