999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Netty的信息發布通信框架設計與實現

2021-10-15 03:33:16朱廣福
數字通信世界 2021年9期
關鍵詞:指令信息

朱廣福

(重慶城市管理職業學院信息中心,重慶 401331)

0 引言

信息發布系統架構通常由服務器端和播放終端構成,信息發布的流程是將服務器上的制作完成的節目信息按播放計劃通過網絡發送給播放終端,最終播放終端完成信息的展示。信息發布指信息從發送端到接收端的傳遞過程,這個過程有三個基本要素:發送端、接收端和傳輸渠道。從數據的傳輸方式看有兩種方式:單向傳輸和雙向傳輸。單向的傳輸是發送端單純的將信息發送出去,對接收端是否收到和是否有反饋不關心。雙向的傳輸是接收端將信息的反饋回傳給接受端,雙方存在信息交互和互動機制。在信息發布系統中,服務器與播放終端間會存在互動的情況,所以采用基于Netty技術的雙向的傳播方式是符合實際情況需要的技術。

1 Netty框架模型分析

Netty是基于異步事件驅動的一種網絡編程模型框架,該模型具有高擴展性、高性能和非阻塞異步傳輸性等特點。Netty框架是基于異步I/O復用模型,在讀寫過程中當發起請求后會立即返回,而不會阻塞業務調用線程。如果想要獲取請求的響應結果,也不需要業務調用線程使用阻塞的方式來等待,而是當響應結果出來時使用IO線程異步通知業務的方式,所以在整個的請求與響應過程中業務線程不會由于阻塞而等待,從而提升了I/O 線程的運行效率。總體而言,Netty的高性能、異步通信和穩定性能適合作為信息發布系統中服務器與終端間的數據通信框架。

2 通信模型的設計

基于Netty技術的信息發布系統的數據通信模型由五個模塊組成,模塊包括終端注冊與授權模塊、日志記錄模塊、數據接收模塊、業務處理模塊、數據發送模塊。數據通信模型結構如圖1所示。

圖1 基于Netty的數據通信模型結構圖

終端注冊與授權模塊是服務器接收客戶端的注冊信息并完成對播放終端的授權,只有注冊并獲取授權信息的終端才能與服務器建立連接、接收數據和交換消息。日志記錄模塊只在服務器端存在,是為了在系統出現故障或者發生異常時,可以方便定位問題以快速解決問題。數據接收模塊的主要功能是適配終端與服務器間的協議并由多線程方式處理來自不同請求終端的數據請求,并且驗證數據的合法性和有效性,通過驗證后把合法的數據交給業務處理模塊進行業務操作。業務處理模塊是根據終端與服務器間約定的協議規則來實現對接收到的數據進行解析和處理,最終實現具體的業務邏輯處理功能。數據發送模塊主要功能是根據終端與服務器間約定的協議規則將需要發送的業務數據進行封裝和編碼并完成發送業務數據。

服務器端與播放終端的通信流程為如下:

(1)播放終端將本機機器編碼和注冊信息封裝后發送給服務器端完成注冊設備。

(2)服務器端接收注冊數據并驗證機器編碼,對于合法的播放終端授權并建立長連接(心跳機制),舍去非法終端的注冊請求數據。

(3)服務器按設備機器編碼向播放終端發送業務數據(指令數據)。

(4)播放終端接收到服務器發送的業務數據,按指令完成操作后將結果回傳給服務器。

(5)服務器端接收到終端回傳的結果數據后操作數據庫完成持久化操作。

3 通信模型的實現

根據上面的通信模型的設計,在具體實現基于Netty技術的模型中要解決很多技術問題,現對通信模型中的通信協議、心跳機制和斷線重連等關鍵技術細節進行實現。

(1)通信協議的實現。通信框架中設計了基于JSON格式的通信協議,通信雙方按照這個通讀協議即可完成會話。

基于JSON語法的通信協議格式如下:

{devCode:'',type:1,data:''}

上面協議中devCode為播放終端的機器編碼;type是數據類型(1:心跳數據;2:注冊數據;3:業務指令;4:結果返回);data為通信的數據。當數據類型為業務指令(type:3)時數據為業務指令數據,其格式如下:

{cmmdName:'',cmmdType:'MAdapter',cmmdArgs:[''] }

其中cmmdName為指令名稱;cmmdType為指令類型;cmmdArgs為指令參數。

(2)心跳機制的實現。在服務器端和播放終端之間通信時為了防止頻繁建立連接對系統資源的浪費而采用長連接機制。在此通信模型中并沒有使用Netty的IdleStateHandler和Ping-Pong機制實現心跳機制,而是服務器端定時執行心跳指令來查詢播放終端的狀態的機制實現心跳。心跳指令代碼如下:

{type:1,devCode:'1001',

data:{cmmdName:'HeartBeat',cmmdType:'MAdapter',cmmdArgs:[]}}

(3)斷線重連的實現。在信息發布系統在運行過程中,因為網絡通信過程中的復雜情況故網絡狀態是不可預知的,播放終端要能及時對網絡的變化作出反應,為了不影響系統的運行,當播放終端因為系統異常或網絡故障原因和服務器失去連接后,播放終端要能及時檢測到與服務器的斷開狀態并立刻發起重新連接,實現快速與服務器端重新建立連接。在此通信模型中對Netty中對ChannelFutureListener下 的operationComplete()方法重寫實現監聽,當Channel關閉時播放終端進行重連,當終端與服務器間的重連失敗后系統則等待10秒之后重新發起連接,直到終端能連接上服務器為止。具體實現代碼如下:

4 結束語

根據信息發布系統中服務器端與播放終端間實現交互的需求,本文設計了基于netty技術的數據通信框架,并對通信協議、心跳機制和斷線重連等技術進行實現,此框架具有負載均衡、高實時性和可擴展性的特點。目前,基于Netty通信框架的信息發布系統已部署到多個應用項目中,滿足信息發布系統對信息下發、遠程終端控制、用戶交互等的功能,同時用戶體驗和服務器性能也很不錯。實踐證明,該通信框架的設計是一種可參考的通信設計方案。

猜你喜歡
指令信息
聽我指令:大催眠術
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
殺毒軟件中指令虛擬機的脆弱性分析
電信科學(2016年10期)2016-11-23 05:11:56
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
一種基于滑窗的余度指令判別算法
坐標系旋轉指令數控編程應用
機電信息(2014年27期)2014-02-27 15:53:56
信息
建筑創作(2001年3期)2001-08-22 18:48:14
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 伊人久久久久久久久久| 美女高潮全身流白浆福利区| 中文字幕乱码二三区免费| 欧美一区二区三区香蕉视| 亚洲国产成人精品一二区| 蜜芽国产尤物av尤物在线看| 91色在线视频| 国产精品网曝门免费视频| 黄色网站不卡无码| AV天堂资源福利在线观看| 这里只有精品国产| 亚洲AV成人一区二区三区AV| 国产理论一区| 激情无码视频在线看| 农村乱人伦一区二区| 91人妻在线视频| 欧美特黄一免在线观看| 在线观看av永久| 99在线观看精品视频| 波多野结衣一级毛片| 午夜人性色福利无码视频在线观看| 亚洲色图在线观看| 久久99国产综合精品1| av无码一区二区三区在线| 日韩在线欧美在线| 国产精品美女免费视频大全| 波多野结衣第一页| 久久精品嫩草研究院| 成人在线视频一区| 精品少妇人妻av无码久久| 国产SUV精品一区二区6| 波多野结衣的av一区二区三区| 99久久精品国产自免费| 欧美在线视频a| 亚洲免费毛片| 久久永久精品免费视频| 亚洲第一网站男人都懂| 九色在线视频导航91| 久草国产在线观看| 日本精品视频| 五月综合色婷婷| 孕妇高潮太爽了在线观看免费| 国产精品美女网站| WWW丫丫国产成人精品| 国产一级二级三级毛片| 无码中文字幕乱码免费2| 亚洲成a∧人片在线观看无码| 欧美激情第一区| 国模极品一区二区三区| 久久9966精品国产免费| 国产手机在线小视频免费观看| 日韩区欧美区| 一本色道久久88亚洲综合| 免费无码网站| 五月婷婷中文字幕| 欧美综合成人| 国产女同自拍视频| 人人妻人人澡人人爽欧美一区| 欧美一区二区精品久久久| 国产AV毛片| 欧美精品v欧洲精品| 国产一区二区三区夜色| 久久精品只有这里有| 国产一二视频| 日韩不卡高清视频| 国产色婷婷| 久久精品免费国产大片| 中文字幕在线日本| 国产精品美女在线| 亚洲天堂视频在线播放| 亚洲美女视频一区| 浮力影院国产第一页| 国产男女XX00免费观看| 国产成人做受免费视频| 91精选国产大片| 国产极品美女在线观看| 老色鬼久久亚洲AV综合| 国产综合网站| 67194亚洲无码| 亚洲综合片| 欧美区国产区| 午夜国产理论|