一種基於MQTT的消息遠程安裝和卸載廣告的方法與流程
2023-05-14 05:35:16 1
本發明涉及網際網路通訊,具體涉及一種基於MQTT的消息遠程安裝和卸載廣告的方法。
背景技術:
目前的網際網路通訊技術需要安裝終端聯網,然後再去下載需要安裝的應用再來安裝終端。這樣無形中增加了終端的運營成本及難度,如果具有多個終端,則需要聯網下載多次,造成資源浪費,而卸載需要進入終端的操作平臺中,找到卸載的軟體後再手動卸載,造成工作量巨大。
MQTT通訊協議是為大量計算能力有限,且工作在低寬帶、不可靠的網絡的遠程傳感器或者控制通訊設計的協議,它具有如下特性:
1)使用發布/訂閱消息模式,提供一對多的消息發布,解除應用程式耦合;
2)對負載內容屏蔽的消息傳輸;
3)使用TCP/IP提供網絡連接;
4)有三種消息發布服務質量:
「至多一次」,消息發布完全依賴底層TCP/IP網絡。會發生消息丟失或重複。這一級別可用於如下情況,環境傳感器數據,丟失一次讀記錄無所謂,因為不久後還會有第二次發送。
「至少一次」,確保消息到達,但消息重複可能會發生。
「只有一次」,確保消息到達一次。這一級別可用於如下情況,在計費系統中,消息重複或丟失會導致不正確的結果。
小型傳輸,開銷很小(固定長度的頭部是2位元組),協議交換最小化,以降低網絡流量;
根據mqtt的特性,選擇mqtt協議來插播消息是一個非常理想的方法。
DES(Data Encryption Standard)是分組對稱密碼算法。DES採用了64位的分組長度和56位的密鑰長度,它將64位的輸入經過一系列變換得到64位的輸出。解密則使用了相同的步驟和相同的密鑰。DES的密鑰長度為64位,由於第n*8(n=1,2,…8)是校驗位,因此實際參與加密的長度為56位,密鑰空間含有2^56個密鑰。
DES算法利用多次組合替代算法和換位算法,分散和錯亂的相互作用,把明文編製成密碼強度很高的密文,它的加密和解密用的是同一算法。
DES算法,是一種乘積密碼,其在算法結構上主要採用了置換、代替、模二相加等函數,通過輪函數迭代的方式來進行計算和工作。
DES算法也會使用到數據置換技術,主要有初始置換IP和逆初始置換IP^-1兩種類型。DES算法使用置換運算的目的是將原始明文的所有格式及所有數據全部打亂重排。而在輪加密函數中,即將數據全部打亂重排,同時在數據格式方面,將原有的32位數據格式,擴展成為48位數據格式,目的是為了滿足S盒組對數據長度和數據格式規範的要求。
一組數據信息經過一系列的非線性變換以後,很難從中推導出其計算的過程和使用的非線性組合;但是如果這組數據信息使用的是線性變換,計算就容易的多。在DES算法中,屬於非線性變換的計算過程只有S盒,其餘的數據計算和變換都是屬於線性變換,所以DES算法安全的關鍵在於S盒的安全強度。此外,S盒和置換IP相互配合,形成了很強的抗差分攻擊和抗線性攻擊能力,其中抗差分攻擊能力更強一些。
技術實現要素:
本發明針對上述問題,提供了一種基於MQTT的消息遠程安裝和卸載廣告的方法。
本發明採用的技術方案是:一種基於MQTT的消息遠程安裝和卸載廣告的方法,包括以下步驟:
S1,終端啟動時,訂閱消息主題;
S2,用戶發布遠程安裝和卸載消息,消息經過DES加密,安裝的消息包含廣告apk名稱和廣告apk下載地址,卸載的消息只需要廣告apk名稱;
S3,終端根據訂閱主題接收用戶發布的遠程安裝或者卸載消息;
S4,終端接收遠程安裝或者卸載消息,並進行DES解密;
S5,終端根據遠程安裝和卸載消息獲得廣告apk名稱和廣告apk下載地址,如果是卸載消息只獲取廣告apk名稱。
進一步地,所述步驟S1還包括:
S11,連接MQTT:
生成連接字符串:指定消息代理主機的IP位址和MQTT分配的埠號;
設置連接屬性,包括客戶機的標識、訂閱類型、發送活動消息的間隔時間;
創建MQTT客戶機對象;
S12,向代理訂閱主題:訂閱是由MQTT對象處理,包括兩個數組參數,即訂閱主題數組、服務質量數組。
更進一步地,所述步驟S2還包括:
S21,向數字標牌發布消息:直接使用MQTT提供的API函數publish,需要提供主題、消息、服務質量等參數;
S22,接收來自代理的消息:為使應用接收到訂閱的消息,創建一個回調處理函數,並且在MQTT客戶端註冊;
用MqttSimpleCallback接口創建簡單接口的對象,並實現connectionLost、deliveryComplete和messageArrived三個方法;
當與代理的連接意外終止時,就調用connectionLost方法;如果出現這種情況,則此方法試圖重新連接到代理;如果connectionLost方法無法重新連接,則會拋出異常來通知客戶機重新連接失敗;
messageArrived方法通知系統訂閱主題的消息已到達客戶端;
deliveryComplete方法表示發送是否完成;
S23,消息發布前需要DES加密。
更進一步地,所述步驟S3還包括:接收消息解密:數字標牌訂閱消息後,代理髮布數字標牌訂閱的主題,數字標牌接收到發布的消息並解密。
更進一步地,所述步驟S4還包括:對相關代碼加密及解密。
本發明的優點:
本發明使用的mqtt協議用在弱信號、低寬帶等環境下工作也可保證接收完整,而且消息經過DES加密,安全性得到保證,是mqtt協議和DES安全認證運用在數字標牌上是一種非常好的方法;本發明的方法上傳和卸載均能批量操作,如果包名一樣,還會覆蓋前一文件。
除了上面所描述的目的、特徵和優點之外,本發明還有其它的目的、特徵和優點。下面將參照圖,對本發明作進一步詳細的說明。
附圖說明
構成本申請的一部分的附圖用來提供對本發明的進一步理解,本發明的示意性實施例及其說明用於解釋本發明,並不構成對本發明的不當限定。
圖1是本發明的基於MQTT的消息遠程安裝和卸載廣告的方法流程圖。
具體實施方式
為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,並不用於限定本發明。
參考圖1,如圖1所示的一種基於MQTT的消息遠程安裝和卸載廣告的方法,包括以下步驟:
S1,終端(數字標牌)啟動時,訂閱消息主題;
S2,用戶發布遠程安裝和卸載消息,消息經過DES加密,安裝的消息包含廣告apk名稱和廣告apk下載地址,卸載的消息只需要廣告apk名稱;
S3,終端根據訂閱主題接收用戶發布的遠程安裝或者卸載消息;
S4,終端接收遠程安裝或者卸載消息,並進行DES解密;
S5,終端根據遠程安裝和卸載消息獲得廣告apk名稱和廣告apk下載地址,如果是卸載消息只獲取廣告apk名稱。所述步驟S1還包括:
S11,連接MQTT:
生成連接字符串:指定消息代理主機的IP位址和MQTT分配的埠號;
設置連接屬性,包括客戶機的標識、訂閱類型、發送活動消息的間隔時間;
創建MQTT客戶機對象;
S12,向代理訂閱主題:訂閱是由MQTT對象處理,包括兩個數組參數,即訂閱主題數組、服務質量數組。
所述步驟S2還包括:
S21,向數字標牌發布消息:直接使用MQTT提供的API函數publish,需要提供主題、消息、服務質量等參數;
S22,接收來自代理的消息:為使應用接收到訂閱的消息,創建一個回調處理函數,並且在MQTT客戶端註冊;
用MqttSimpleCallback接口創建簡單接口的對象,並實現connectionLost、deliveryComplete和messageArrived三個方法;
當與代理的連接意外終止時,就調用connectionLost方法;如果出現這種情況,則此方法試圖重新連接到代理;如果connectionLost方法無法重新連接,則會拋出異常來通知客戶機重新連接失敗;
messageArrived方法通知系統訂閱主題的消息已到達客戶端;
deliveryComplete方法表示發送是否完成;
S23,消息發布前需要DES加密。
所述步驟S3還包括:接收消息解密:數字標牌訂閱消息後,代理髮布數字標牌訂閱的主題,數字標牌接收到發布的消息並解密。
所述步驟S4還包括:對相關代碼加密及解密。
本發明通過MQTT協議,推送消息到終端,終端接收到消息解密之後,根據協議內容的action的值來區分安裝還是卸載廣告,如果是安裝,則根據apkUrl的值去伺服器上下載安裝包,如果是卸載則根據apkName去卸載終端上的廣告。
本發明的基於MQTT的消息遠程安裝和卸載廣告的方法,終端(數字標牌)啟動時,訂閱消息主題如:cloudring/client/terminal/terminalId/#,其中terminalId為終端的具體值;
用戶發布遠程安裝和卸載消息,消息經過DES加密,安裝的消息包含廣告apk名稱和廣告apk下載地址,卸載的消息只需要廣告名稱即可;
終端根據訂閱主題接收用戶發布的遠程安裝和卸載消息;
終端接收遠程安裝和卸載消息,並進行DES解密;
終端根據遠程安裝和卸載消息獲得廣告apk名稱和廣告apk下載地址,如果是卸載消息只獲取廣告apk名稱;
由於是通過mqtt協議來傳輸的,在弱信號、低寬帶環境都可以保證接收到,這樣客戶的體驗會更加完善。
現在很多的數字標牌,本身的wifi信號不強,如果是走http協議,則可能發生斷網的情況或者連結不通暢導致消息接收不到或者是不完整,這樣就會導致廣告的體驗效果差,
本發明使用的mqtt協議用在弱信號、低寬帶等環境下工作也可保證接收完整,而且消息經過DES加密,安全性得到保證,是mqtt協議和DES安全認證運用在數字標牌上是一種非常好的方法;本發明的方法上傳和卸載均能批量操作,如果包名一樣,還會覆蓋前一文件。
以上所述僅為本發明的較佳實施例,並不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。