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

基于約定和配置的WebSocket客戶端通信框架設(shè)計(jì)

2019-06-27 10:36:04蔡朝鵬
科技創(chuàng)新與應(yīng)用 2019年20期

蔡朝鵬

摘 要:WebSocket可實(shí)現(xiàn)服務(wù)器和客戶端的全雙工通訊。為解決WebSocket通信程序編寫的重復(fù)性和不易維護(hù)的問題,基于協(xié)議格式一致性的約定和XML配置文件設(shè)計(jì)了一個WebSocket客戶端通信框架。該框架使用JavaScript通信類按照XML文件的配置自動執(zhí)行通信流程,提升了WebSocket通信程序的可復(fù)用性和可維護(hù)性,提高了開發(fā)效率。

關(guān)鍵詞:WebSocket;JavaScript;XML;HTML5

中圖分類號:TP393 文獻(xiàn)標(biāo)志碼:A 文章編號:2095-2945(2019)20-0020-03

Abstract: WebSocket can realize full-duplex communication between the server and the client. In order to solve the repeatability and difficult maintenance of WebSocket communication program, a WebSocket client communication framework is designed based on the agreement of protocol format consistency and XML configuration file. The framework uses JavaScript communication classes to automatically execute the communication flow according to the configuration of XML files, thus improving the reusability and maintainability of WebSocket communication programs and the development efficiency.

Keywords: WebSocket; JavaScript; XML; HTML5

引言

HTML協(xié)議是一種無狀態(tài)、無連接、單向的應(yīng)用層協(xié)議。單向連接的特點(diǎn)決定了如果服務(wù)器有任何狀態(tài)變化,客戶端都無法獲知。為了讓客戶端正常獲取服務(wù)器的狀態(tài)變化,往往需要客戶端以特定的時間間隔進(jìn)行Ajax輪詢。這種模式下客戶端會不斷的向服務(wù)器發(fā)送請求,導(dǎo)致網(wǎng)絡(luò)中出現(xiàn)很多無效數(shù)據(jù)包,浪費(fèi)帶寬資源。

WebSocket是HTML5開始提供的一種在單個TCP連接上進(jìn)行全雙工通訊的協(xié)議。WebSokcet連接是長連接,服務(wù)器可以主動向客戶端推送消息,客戶端也可以主動向服務(wù)器發(fā)送消息。這樣就大大提高了服務(wù)器資源和帶寬的利用效率[1]。

目前一般WebSocket客戶端的使用方式是,用send方法向服務(wù)器發(fā)送數(shù)據(jù),再通過onmessage事件接收并處理服務(wù)器返回的數(shù)據(jù),每條協(xié)議都需要進(jìn)行專門的處理,代碼量大,不易維護(hù),無法復(fù)用,基于此,本文設(shè)計(jì)了一個可復(fù)用、易維護(hù)的WebSocket客戶端通信框架。

1 框架概述

該通信框架由三部分組成:協(xié)議配置文件格式、通信流程配置文件格式和通信類。程序使用JavaScript語言編寫[2]。

編寫WebSocket客戶端通信程序的流程為:

(1)配置協(xié)議配置文件。

(2)配置通信流程配置文件。

(3)各流程節(jié)點(diǎn)回調(diào)函數(shù)和結(jié)果處理函數(shù)的定義。

(4)通信類對象初始化。

(5)通信類對象開始執(zhí)行通信流程。

配置文件用來定義協(xié)議和通信流程,而實(shí)際的通信流程依靠通信類中的函數(shù)來啟動執(zhí)行。

本框架需要有一條重要約定,就是所有協(xié)議均遵從同一套結(jié)構(gòu)定義,如均為SCPI協(xié)議。

2 框架流程圖

由此WebSocket框架編寫的程序的運(yùn)行流程圖如圖1。

由圖1可以看出,一旦配置好了協(xié)議和通信流程,則程序會自動運(yùn)行整個通信流程,直到最后一條協(xié)議。

3 協(xié)議配置文件

可使用XML文件進(jìn)行協(xié)議配置。協(xié)議包括id、類型、內(nèi)容、參數(shù)等元素。配置文件中協(xié)議節(jié)點(diǎn)定義如下:

THRes:PORT

id:本條協(xié)議的唯一標(biāo)識;

type:表示此協(xié)議為設(shè)置還是讀取類型;

content:此協(xié)議的內(nèi)容;

arg:receive屬性為false時,表示arg為發(fā)送參數(shù),即需要跟content一起發(fā)送給服務(wù)器;receive屬性為true時,表示arg為接收數(shù)據(jù)。type屬性為arg參數(shù)的類型,bytes屬性為arg參數(shù)的字節(jié)數(shù),count屬性為arg參數(shù)的個數(shù)。

4 通信流程配置文件

通信流程同樣使用XML文件來配置。通信流程節(jié)點(diǎn)需要配置id、協(xié)議id、結(jié)果處理函數(shù)、下一條協(xié)議的信息等。

post_callback="">0

|default|

主站蜘蛛池模板: 亚洲精品无码人妻无码| 成人国产三级在线播放| 日韩精品中文字幕一区三区| 国产亚洲精品va在线| 91精品视频播放| 高清欧美性猛交XXXX黑人猛交| 久久96热在精品国产高清| 国产免费羞羞视频| 在线免费不卡视频| 精品福利视频导航| 99久久婷婷国产综合精| 国产久草视频| 欧美成人一级| 国产九九精品视频| 国产aⅴ无码专区亚洲av综合网| 亚洲最猛黑人xxxx黑人猛交| 久久精品国产91久久综合麻豆自制| a级毛片免费在线观看| 99九九成人免费视频精品| 欧美性猛交一区二区三区| 青青草国产精品久久久久| 久久精品91麻豆| 国产超碰在线观看| 欧美区日韩区| 波多野结衣一区二区三区88| 中文字幕久久精品波多野结| 欧美a在线看| 精品国产免费人成在线观看| a毛片在线免费观看| 日韩在线观看网站| 综合色亚洲| 久久综合国产乱子免费| 2020精品极品国产色在线观看| 国产青青操| 亚洲熟女中文字幕男人总站| 亚洲av无码牛牛影视在线二区| 欧美成人免费一区在线播放| 免费国产高清精品一区在线| 国产精品久线在线观看| 午夜福利在线观看成人| 人妻精品久久久无码区色视| 亚洲妓女综合网995久久| a级毛片网| 99国产在线视频| 99久久精品免费视频| 99热这里只有精品国产99| 日韩欧美国产区| 国产精品女人呻吟在线观看| AV片亚洲国产男人的天堂| 在线另类稀缺国产呦| 国产精品内射视频| 黄色三级网站免费| 精品福利一区二区免费视频| 精品国产美女福到在线不卡f| 免费精品一区二区h| 久久国产香蕉| 米奇精品一区二区三区| 国产制服丝袜91在线| 亚洲午夜福利在线| 国产00高中生在线播放| 国产欧美在线观看一区| 久久99国产乱子伦精品免| 免费人成黄页在线观看国产| av午夜福利一片免费看| 一本大道无码高清| 亚洲国产精品VA在线看黑人| 亚洲精品福利网站| 五月天福利视频| 亚洲无码高清一区| 久久综合国产乱子免费| 99草精品视频| 免费高清毛片| 一本久道热中字伊人| 久久这里只有精品66| 国产美女自慰在线观看| 亚洲不卡网| 潮喷在线无码白浆| 亚洲AV无码一二区三区在线播放| 亚洲av无码牛牛影视在线二区| 老色鬼欧美精品| 国产成人做受免费视频| 欧美亚洲一二三区|