數(shù)據(jù)采用json格式闲昭,內(nèi)容全部為字符串
1,服務(wù)器請求設(shè)備數(shù)據(jù)
{msgtype:devices,id:51001,action:讀總電量,data:""}
說明:
msgtype:消息類型靡挥,
devices表示是一個發(fā)個具體設(shè)備的消息請求;
id汤纸,具體設(shè)備,對應(yīng)設(shè)置的端口號
action,對設(shè)備的請求行為芹血,如:獲取總電量,獲取當(dāng)前功率等
data,要發(fā)送給設(shè)備的數(shù)楞慈,如:當(dāng)action為修改總電量時幔烛,data為要修改的新數(shù)據(jù),data不用時為空囊蓝,但不能沒有饿悬,有多個數(shù)據(jù)時,使用數(shù)組data:[abc,wfd]
2聚霜,回復(fù)服務(wù)器數(shù)據(jù)
{msgtype:devices,id:51001,action:讀總電量,data:2396.65}
讀設(shè)備和服務(wù)器請求相同狡恬,
寫設(shè)備data回復(fù)OK,或者不回復(fù)服務(wù)器
錯誤上報:action為error,data有三種,1蝎宇,offline,表示和485轉(zhuǎn)wifi設(shè)備網(wǎng)絡(luò)斷開弟劲;2,failed表示和485轉(zhuǎn)wifi設(shè)備連接正常姥芥,但不能獲取設(shè)備數(shù)據(jù)兔乞,可能設(shè)備停止運行;3,能讀到設(shè)備數(shù)據(jù)庸追,但數(shù)據(jù)不正常霍骄,需要檢查線路連接等
3,服務(wù)器和中間件的通訊
1淡溯,中間件從服務(wù)器獲取設(shè)備列表
{msgtype:serv,:action:devlist,data:“”}
2读整,服務(wù)器回復(fù)中間件
{msgtype:serv,:action:devlist,data:[51001,52000咱娶,53003]}
由于終端設(shè)備沒有可配置信息米间,所有信息直接在服務(wù)器配置
注,這條可以添加設(shè)備時發(fā)給中間件豺总,直接發(fā)送新添加的設(shè)備id车伞,也可以全部重發(fā)所有id,中間件不會刪除id喻喳,服務(wù)器發(fā)送過來的id不存在就添加在設(shè)備列表里
疑問:
1另玖,每條消息用什么分割,即粘包問題
2表伦,和主服務(wù)器斷開時谦去,是否要把設(shè)備側(cè)的數(shù)據(jù)暫時保存到中間件側(cè)文件,等和服務(wù)器建立連接后蹦哼,將數(shù)據(jù)同步到服務(wù)器鳄哭,