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

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

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

蔡朝鵬

摘 要:WebSocket可實(shí)現(xiàn)服務(wù)器和客戶端的全雙工通訊。為解決WebSocket通信程序編寫的重復(fù)性和不易維護(hù)的問題,基于協(xié)議格式一致性的約定和XML配置文件設(shè)計了一個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è)計了一個可復(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|

主站蜘蛛池模板: 久久久无码人妻精品无码| 免费a在线观看播放| 免费无遮挡AV| 老司国产精品视频| 久草热视频在线| 国产欧美精品专区一区二区| 香蕉久人久人青草青草| 久久综合亚洲鲁鲁九月天| 亚洲精品午夜无码电影网| 国产美女叼嘿视频免费看| 精品综合久久久久久97超人| 手机永久AV在线播放| 亚洲午夜福利精品无码不卡 | 成人精品亚洲| 一级毛片免费观看久| 99视频精品全国免费品| 亚洲中文字幕久久无码精品A| 欧美成人免费午夜全| 国产无码精品在线播放| 久久婷婷六月| 欧美国产菊爆免费观看| 久久大香伊蕉在人线观看热2| 国产一区在线视频观看| 日韩av资源在线| 日韩天堂网| 99在线观看免费视频| 在线永久免费观看的毛片| 国产偷倩视频| www.91在线播放| 国产欧美另类| 国产三级a| 激情無極限的亚洲一区免费| 婷婷五月在线| 久久综合亚洲鲁鲁九月天| 中国美女**毛片录像在线| 久久精品国产91久久综合麻豆自制| 男人天堂伊人网| 免费国产黄线在线观看| 国产va在线| 婷婷99视频精品全部在线观看| 国产成人精品三级| 91人人妻人人做人人爽男同| 久久久精品无码一二三区| 99九九成人免费视频精品 | 中文字幕亚洲专区第19页| 久久先锋资源| AV无码无在线观看免费| 亚洲高清在线天堂精品| 国产一级一级毛片永久| 中文字幕在线观看日本| 欧美日本视频在线观看| 国产婬乱a一级毛片多女| 69av免费视频| 男女性色大片免费网站| 91精品免费高清在线| 播五月综合| yjizz国产在线视频网| 无码AV高清毛片中国一级毛片| 97人人做人人爽香蕉精品| 亚洲不卡无码av中文字幕| 欧美一级大片在线观看| 国产美女免费网站| 亚洲欧美精品一中文字幕| 国产成人av一区二区三区| 内射人妻无码色AV天堂| 国产高清无码第一十页在线观看| 亚洲精品欧美日本中文字幕| 欧美亚洲欧美区| 日韩毛片视频| 欧美一级特黄aaaaaa在线看片| 日日碰狠狠添天天爽| 亚洲视频欧美不卡| 国产va在线观看免费| 亚洲日本中文字幕乱码中文| 天堂岛国av无码免费无禁网站 | 亚洲综合婷婷激情| 久久性视频| 国产91特黄特色A级毛片| 亚洲国产天堂久久综合| 亚洲无限乱码| 国产精品美女网站| 亚洲国产日韩视频观看|