亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇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ì)了一個(gè)WebSocket客戶端通信框架。該框架使用JavaScript通信類按照XML文件的配置自動(dòng)執(zhí)行通信流程,提升了WebSocket通信程序的可復(fù)用性和可維護(hù)性,提高了開發(fā)效率。

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

        中圖分類號(hào):TP393 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):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)變化,往往需要客戶端以特定的時(shí)間間隔進(jìn)行Ajax輪詢。這種模式下客戶端會(huì)不斷的向服務(wù)器發(fā)送請(qǐng)求,導(dǎo)致網(wǎng)絡(luò)中出現(xiàn)很多無效數(shù)據(jù)包,浪費(fèi)帶寬資源。

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

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

        1 框架概述

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

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

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

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

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

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

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

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

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

        2 框架流程圖

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

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

        3 協(xié)議配置文件

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

        THRes:PORT

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

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

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

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

        4 通信流程配置文件

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

        post_callback="">0

        |default|

        久久精品岛国av一区二区无码| 人人妻人人澡人人爽欧美一区| 性猛交╳xxx乱大交| 免费黄色电影在线观看| 国产成人精品免费视频大全| 国内揄拍国内精品久久| 久久久久人妻精品一区二区三区 | 丝袜美腿人妻第一版主| 欧美牲交videossexeso欧美| 亚洲性无码av中文字幕| 日本按摩偷拍在线观看| 精品无码av无码专区| 日本一二三四区在线观看| 精品久久久久香蕉网| 日日摸夜夜添夜夜添无码免费视频 | 日本一本久道| 亚洲老女人区一区二视频| 一区二区视频在线观看地址| 在线 | 一区二区三区四区| 最新国产三级| 日本二区视频在线观看| 变态另类手机版av天堂看网| 少妇无码av无码一区| 亚洲AV一二三四区四色婷婷| 乱色视频中文字幕在线看| 亚洲av色香蕉一区二区三区潮| 亚洲av无码乱码国产一区二区| 成人无码区免费a片www| 国产精品久久久久久久久久影院| 国产三级精品三级在线专区2| 亚洲av无码成人网站在线观看| 亚洲国产美女精品久久| 亚洲精品女优中文字幕| 亚洲国产精品无码aaa片| 亚洲人成亚洲精品| 久久婷婷国产综合精品| 亚洲精品一区二区三区52p| 天天天天躁天天爱天天碰2018| 国产艳妇av在线出轨| 97成人精品在线视频| 51看片免费视频在观看|