欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

源碼分析系列之PomeloForEgret-創(chuàng)新互聯(lián)

在我上一個(gè)手游項(xiàng)目中,前端使用的是白鷺引擎,后端使用的框架是pomelo,前端使用的網(wǎng)絡(luò)庫(kù)是pomelo提供給白鷺的,可以在git上拿到這份源代碼,或者應(yīng)該pomelo的官網(wǎng)也可以找到。

成都創(chuàng)新互聯(lián)一直秉承“誠(chéng)信做人,踏實(shí)做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個(gè)客戶多一個(gè)朋友!為您提供成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、成都網(wǎng)頁(yè)設(shè)計(jì)、微信小程序開發(fā)、成都網(wǎng)站開發(fā)、成都網(wǎng)站制作、成都軟件開發(fā)、app軟件定制開發(fā)是成都本地專業(yè)的網(wǎng)站建設(shè)和網(wǎng)站設(shè)計(jì)公司,等你一起來(lái)見(jiàn)證!

本文是對(duì)這份PomeloForEgret源碼的分析。一個(gè)完整的客戶端網(wǎng)絡(luò)庫(kù)應(yīng)該包括初始化,握手,發(fā)送心跳包,協(xié)議數(shù)據(jù)的發(fā)送和接收。PomeloForEgret基于websocket,完整的包含了上述的功能,數(shù)據(jù)的發(fā)送和接收同時(shí)支持json數(shù)據(jù)和根據(jù)protobuf數(shù)據(jù)結(jié)構(gòu)協(xié)議序列化的二進(jìn)制數(shù)據(jù)。本文主要對(duì)協(xié)議數(shù)據(jù)的發(fā)送和接收的部分進(jìn)行解讀。

先介紹下PomeloForEgret主要的包含的類:Pomelo,Package,Message,Protocol,Protobuf。Pomelo是跟外界交互的業(yè)務(wù)邏輯類,而Package,Message,Protocol和Protobuf類作為Pomelo的工具類。

Message的數(shù)據(jù)傳送類型包括TYPE_REQUEST,TYPE_NOTIFY,TYPE_RESPONSE,TYPE_PUSH。

Package的業(yè)務(wù)類型包括TYPE_HANDSHAKE,TYPE_HANDSHAKE,TYPE_HEARTBEAT,TYPE_DATA,TYPE_KICK。

一、 協(xié)議的數(shù)據(jù)發(fā)送數(shù)據(jù)
協(xié)議的數(shù)據(jù)發(fā)送需要經(jīng)過(guò)以下3個(gè)流程:

  1. Pomelo類的request方法。
    requet(route,msg,cg)有以下三個(gè)步驟:
    a. reqId++
    b. sendMessage(reqId,route,msg)
    c. callbacks[reqId]=cb,routeMap[reqId]=route,保存協(xié)議發(fā)送的回調(diào),這個(gè)回調(diào)用來(lái)處理同一次同一個(gè)協(xié)議(路由)返回的數(shù)據(jù)。
  2. Pomelo的sendMessage方法,就是上面的1.b方法。
    sendMessage(reqId,route,msg)有以下步驟:
    a. byte:egrete.ByteArray
    b. this._message.encode(reqId,route,msg),利用Message工具類對(duì)發(fā)送的數(shù)據(jù)序列化成二進(jìn)制數(shù)據(jù)(需要用到Protobuf工具類或Protocol工具類)。
    c. this._package.encode(Package.TYPE_DATA,byte),利用Package工具類,加上Package的業(yè)務(wù)類型(見(jiàn)上),后面加上2.b步驟的二進(jìn)制數(shù)據(jù),寫入字節(jié)流。
  3. Pomelo的send方法。
    a. this.socket.writeByte(byte)
    b. this.socket.flush

特別的,上面的2.b和2.c的步驟具體如下:
2.b Message的encode方法將協(xié)議發(fā)送的數(shù)據(jù)進(jìn)行序列化:
把Message的數(shù)據(jù)傳送類型(見(jiàn)上)寫入字節(jié)流。
把reqId寫入字節(jié)流。
把路由寫入字節(jié)流。
利用Protobuf或Protocol工具類把協(xié)議的數(shù)據(jù)寫入字節(jié)流,具體如下[tag,type][value] [tag,type][value] [tag,type][value]……。
所以message的字節(jié)流應(yīng)該是這樣的:[傳送類型][reqId][route][protobuf序列化數(shù)據(jù)]
2.c Package的encode方法步驟如下:
寫入Package業(yè)務(wù)類型(見(jiàn)上)。
寫入2.b生成的二進(jìn)制數(shù)據(jù)長(zhǎng)度,占3個(gè)字節(jié)。
寫入2.b生成的二進(jìn)制。

所以package的字節(jié)流應(yīng)該這樣的:[業(yè)務(wù)類型][message的數(shù)據(jù)長(zhǎng)度占3個(gè)字節(jié)][Message的數(shù)據(jù)]

  1. 協(xié)議的數(shù)據(jù)接收。
    協(xié)議的數(shù)據(jù)接收主要包括以下的步驟:
  2. this._package.decode(byte):
    a. 讀取Package的業(yè)務(wù)類型(見(jiàn)上)。
    b. 讀取message的長(zhǎng)度
    c. 讀取message。
    return {type:type,body:body,length:len}

  3. this._message.decode(data):
    a.Message的數(shù)據(jù)傳送類型(見(jiàn)上)。
    b.讀取reqId。
    c.讀取路由
    d.利用Protobuf或Protocol類將2.c的message數(shù)據(jù)轉(zhuǎn)化為對(duì)象或者所需的數(shù)據(jù)。

協(xié)議的數(shù)據(jù)發(fā)送和接受的流程是反過(guò)來(lái)一一對(duì)應(yīng)的。

最后再貼下Protobuf類序列化和反序列化無(wú)符號(hào)int的寫法,感覺(jué)挺巧妙的:
源碼分析系列之PomeloForEgret
源碼分析系列之PomeloForEgret

完。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

新聞標(biāo)題:源碼分析系列之PomeloForEgret-創(chuàng)新互聯(lián)
當(dāng)前URL:http://aaarwkj.com/article20/iceco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、服務(wù)器托管、企業(yè)建站、小程序開發(fā)、App開發(fā)定制開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)
午夜激情视频免费国产| 日韩精品电影一二三| 日韩在线视频一区二区三| 高清av在线国产成人精品自拍| 蜜桃传媒18传媒在线| 欧美午夜一区二区电影| 成人激情视频在线网页| 岛国免费av在线观看| 日本色电影一区二区三区| 国产无人区码一区二区| 黄色大片黄色大片黄色大片| 欧美午夜国产在线观看| 日本中文有码视频在线观看| 国产精品自偷自偷自偷| 亚洲午夜精品日韩乱码| 日韩av亚洲一区二区三区| 岛国av有码高清在线观看| 国产欧美一区二区另类精品| 日本不卡一区二区在线播放| 未满十八禁止免费在线观看| 视频一区欧美日韩精品| 国产大学生吞精在线视频| 亚洲中文波霸中文字幕| 成人黄色动作片在线观看| 91成年精品一区在线观看| 黄色录像一级二级三级| 伊人青草免费在线视频| 久久成人日韩电影午夜| 久久久国产精品视频网站| 蜜臀视频在线观看免费| 日本少妇一区二区99| 一区二区三区四区自拍偷拍视频| 久久激情日本人妻av免费| 91麻豆亚洲国产成人久久精品| 视频一区中文字幕在线| 色综合色很天天综合色| 亚洲三区四区视频在线观看| 亚洲高清无毛一区二区| 日韩欧美黄片一区二区三区| 91午夜精品亚洲一区二区三区| 在线视频日韩欧美国产二区|