DTU心跳包實(shí)際上是一個(gè)與服務(wù)器長連接的機(jī)制包。一般來說,如果一段時(shí)間沒有與服務(wù)器通信,服務(wù)器會主動斷開并斷開DTU之間的數(shù)據(jù)連接。如果客戶想長期與服務(wù)器保持連接,只能使用心跳包,DTU在網(wǎng)絡(luò)空閑時(shí),將參數(shù)規(guī)定的數(shù)據(jù)定期發(fā)送到服務(wù)器。
如何設(shè)置心跳包?
一般來說,一個(gè)新的DTU在默認(rèn)參數(shù)下,設(shè)備的心跳時(shí)間為0,不會主動將心跳包發(fā)送到服務(wù)器,需要設(shè)置后才能將心跳包發(fā)送到服務(wù)器,那么如何設(shè)置心跳包呢?
1.保持鏈接
當(dāng)DTU處在TCP當(dāng)透傳狀態(tài)連接到服務(wù)器時(shí),如果在一定時(shí)間內(nèi),DTU如果沒有向服務(wù)器發(fā)送數(shù)據(jù),運(yùn)營商會強(qiáng)制將數(shù)據(jù)發(fā)送給服務(wù)器DTU與服務(wù)器斷開。所以在這個(gè)時(shí)候我們的。DTU隨時(shí)發(fā)送一包數(shù)據(jù)作為保持鏈接的條件。如果沒有心跳斷開連接,我們的DTU也會在幾秒鐘內(nèi)重新連接,相當(dāng)可靠,但設(shè)置心跳可以避免數(shù)據(jù)斷開時(shí)丟失。
2.告知數(shù)據(jù)中心DTU還在線
當(dāng)DTU連接到服務(wù)器時(shí),設(shè)置并設(shè)置DTU每分鐘發(fā)送一包數(shù)據(jù),如果服務(wù)器超過設(shè)定時(shí)間一分鐘未收到DTU服務(wù)器將識別數(shù)據(jù)DTU已經(jīng)掉線,然后阻礙通信。因此,心跳包可以通知數(shù)據(jù)中心。DTU還在網(wǎng)上。同時(shí),不用擔(dān)心跳包擾亂數(shù)據(jù)。DTU具有心跳避讓功能,同時(shí)上傳數(shù)據(jù),心跳避讓不發(fā)送此信息。
向網(wǎng)絡(luò)端發(fā)送主要目的是為了與服務(wù)器保持連接,和讓長時(shí)間空閑(很長時(shí)間內(nèi)不會向服務(wù)器發(fā)送數(shù)據(jù))的模塊檢測連接狀態(tài)是否有效。當(dāng)連接異常時(shí),模塊會檢測到無法正常發(fā)送心跳包數(shù)據(jù)到服務(wù)器端,發(fā)送失敗次數(shù)大于3次時(shí),模塊認(rèn)為連接異常,將嘗試重新接入服務(wù)器。
在服務(wù)器向設(shè)備發(fā)送固定查詢指令的應(yīng)用中,為了減少通信流量,用戶可以選擇,用向串口設(shè)備端發(fā)送心跳包(查詢指令),來代替從服務(wù)器發(fā)送查詢指令。