日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Python bsonrpc源碼解讀

瀏覽:175日期:2022-06-25 08:53:42

bsonrpc 是python中⼀個基于json或bson的遠程過程調(diào)⽤的庫,提供了服務(wù)端與客戶端實現(xiàn),其底層采⽤的是基于TCP連接的通信。

程序結(jié)構(gòu)

Python bsonrpc源碼解讀

bsonrpc主要包括以下⽂件:

concurrent.py:針對兩種并發(fā)⽅式(threading線程對象、gevent協(xié)程對象)涉及的相應(yīng)組件(Queue,Event,Lock等)提供統(tǒng)⼀的對外的⽣成接⼝:spawn(),new_promise(),new_queue(), new_lock()等; definitions.py:定義rpc的消息結(jié)構(gòu)和錯誤編碼; dispatcher.py:rpc的處理調(diào)度,路由處理(消息對應(yīng)的處理函數(shù)); exceptions.py:異常定義; framing.py:定義不同類實現(xiàn)JSON RPC 2.0標(biāo)準(zhǔn)中的不同消息結(jié)構(gòu); interfaces.py:定義提供服務(wù)的裝飾器; misc.py:該⽂件中定義了⼀個id⽣成器,從1開始累加。 options.py:定義配置選項。 rpc.py:主要為BSONRpc和JSONRpc類的實現(xiàn); socket_queue.py:主要為消息的拆包組包部分; util.py:系統(tǒng)⼯具。

本⽂主要描述庫包中對于不同協(xié)議的分包組包的處理,涉及到socket_queue.py和framing.py⽂件,主要采⽤的是對象組合的技術(shù)。

解讀

socket_queue.py中的SocketQueue類是⽤來處理從socket接收數(shù)據(jù),主要的⽅法為_receiver()和put()⽅法,分別對應(yīng)分包和組包,分包的主要內(nèi)容如下:

def _receiver(self): bbuffer = b’’ while True: try: chunk = self.socket.recv(self.BUFSIZE) # 從socket上接收數(shù)據(jù) bbuffer = self._to_queue(bbuffer + chunk) # 數(shù)據(jù)分包 except DecodingError as e: self._queue.put(e) # 后⾯省略...def _to_queue(self, bbuffer): b_msg, bbuffer = self.codec.extract_message(bbuffer) # 解碼器提取完整的信息 while b_msg is not None: self._queue.put(self.codec.loads(b_msg)) # 解碼后的消息放⼊消息隊列中等待處理 b_msg, bbuffer = self.codec.extract_message(bbuffer) return bbuffer

組包的主要內(nèi)容如下:

def put(self, item): if self._closed: raise BsonRpcError(’Attempt to put items to closed queue.’) msg_bytes = self.codec.into_frame(self.codec.dumps(item)) # 組包 with self._lock: self.socket.sendall(msg_bytes)

Python bsonrpc源碼解讀

如上圖所示,程序采⽤的是對象組合的⽅式實現(xiàn)消息分包處理的。對象組合是繼承之外的另⼀種選擇,對象組合要求被組合的對象具有良好定義的接⼝,通過接⼝的⽅式調(diào)⽤其他對象的功能,這個也被“⿊箱復(fù)⽤”,因為對象的內(nèi)部細節(jié)是不可⻅的。SocketQueue中依賴Codec的extract_message()接⼝⽅法,不⽤關(guān)⼼其具體的實現(xiàn)⽅法。具體實現(xiàn)由JSONCodec和BSONCode進⾏實現(xiàn)。JSONCodec中依賴JSONFrame中的extract_message()接⼝⽅法,該接⼝⽅法的實現(xiàn)由JSONFramingNone、JSONFramingNetstring、JSONFramingRFC7464進⾏實現(xiàn)。SocketQueue消息組包過程依賴于into_frame()⽅法,也是通過對象組合實現(xiàn)的。

注:圖中的接⼝為了⼤家容易理解才加上了,源碼⾥⾯并沒有。

以上就是Python bsonrpc源碼解讀的詳細內(nèi)容,更多關(guān)于Python bsonrpc源碼的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产在线视频欧美一区| 国产色播av在线| 亚洲精品第一| 欧美亚洲一区二区三区| 99精品视频精品精品视频| 国产精品7m凸凹视频分类| 日韩高清三区| 久久九九电影| 亚州国产精品| 91麻豆精品| 日韩精品一区二区三区中文在线 | а√天堂8资源在线| 麻豆亚洲精品| а√在线中文在线新版| 91精品日本| 激情综合自拍| 五月天久久久| 国产欧美欧美| 国产精久久久| 天堂资源在线亚洲| 日韩精彩视频在线观看| 亚洲欧美日韩国产综合精品二区| 欧美男人天堂| 日韩一区二区在线免费| 欧美va天堂在线| 亚洲色图综合| 婷婷亚洲精品| 日韩二区三区四区| 日本特黄久久久高潮| 日本三级亚洲精品| 国产乱码精品一区二区亚洲| 国产日韩视频在线| 久色成人在线| 欧美亚洲人成在线| 欧美精品1区| 国产欧美激情| 国产成人精品一区二区三区免费| 欧美激情五月| 波多视频一区| 欧美日韩免费观看一区=区三区| 首页国产欧美日韩丝袜| 午夜在线观看免费一区| 天堂va在线高清一区| 日韩毛片一区| 日韩伦理在线一区| 亚洲精品国模| 日韩精品不卡一区二区| 丝袜美腿诱惑一区二区三区| 亚洲在线国产日韩欧美| 久久精品凹凸全集| 91精品蜜臀一区二区三区在线| 久久要要av| 国产精品a级| 男人的天堂久久精品| 老鸭窝一区二区久久精品| 一区视频在线| 国产一区二区亚洲| 婷婷成人av| re久久精品视频| 精品欧美日韩精品| 日韩精品欧美精品| 亚洲二区视频| 日韩精品社区| 欧美综合国产| 欧产日产国产精品视频| 国产欧美高清| 亚洲精品成人一区| 国产字幕视频一区二区| 国产精品一二| 亚洲三级网址| 爽好多水快深点欧美视频| 久久国产免费| 国产精品亚洲人成在99www | 国产精品88久久久久久| 国产精品欧美三级在线观看| 图片区亚洲欧美小说区| 天堂中文av在线资源库| 麻豆一区在线| 久久久精品国产**网站| 99久久婷婷这里只有精品| 久久青草久久| 亚洲午夜电影| 欧美日韩第一| 亚洲涩涩在线| 久久久久蜜桃| 亚洲精品国产偷自在线观看| 欧美69视频| 一区二区三区四区精品视频| 免费成人在线视频观看| 日本不卡高清| 亚洲精品大片| 国产情侣久久| 国产一区二区三区网| 精品国产一级| 日韩精品麻豆| 亚洲一级在线| 国产乱码精品一区二区三区亚洲人 | 视频在线在亚洲| 日韩激情网站| 精品国产亚洲一区二区在线观看| 久久永久免费| 亚洲第一精品影视| 自拍自偷一区二区三区| 久久99蜜桃| 欧美激情三区| 国产精品黑丝在线播放| 99久久亚洲精品蜜臀| 鲁大师成人一区二区三区| 日韩精品免费观看视频| 日本一二区不卡| 午夜一级在线看亚洲| 国产精品va| 亚洲无线一线二线三线区别av| 一区二区精品| 欧美激情五月| 视频一区视频二区中文字幕| 麻豆国产91在线播放| 99亚洲视频| 在线午夜精品| 日韩精选在线| 国产精品97| 国产精选在线| 欧美一区影院| 欧美日韩国产在线一区| 久久中文字幕一区二区| 亚洲久草在线| 99热精品久久| 青青草伊人久久| 狠狠干综合网| 日韩在线短视频| 久久av超碰| 日韩中文字幕在线一区| 91精品国产乱码久久久久久久| 91成人精品观看| 亚洲福利一区| 日韩在线第七页| 久久不卡日韩美女| 男女激情视频一区| 国产高清一区| 亚洲欧美综合| 午夜视频一区二区在线观看| 国产精品毛片一区二区三区| 欧美13videosex性极品| 91亚洲国产| 黄色欧美在线| 免费在线亚洲欧美| 欧美一级二级三级视频| 日韩高清电影免费| 伊人精品久久| 一区二区三区国产盗摄| 国产欧美日韩影院| 日韩欧美二区| 色综合视频一区二区三区日韩| 国产精品黄色| 中文一区二区| 老鸭窝一区二区久久精品| 午夜电影亚洲| 欧美国产亚洲精品| 最新亚洲激情| 成人在线视频中文字幕| 首页亚洲欧美制服丝腿| 国产一区二区三区免费在线| 国产亚洲综合精品| 麻豆视频在线看| 亚洲乱码视频| av一区二区高清| 国产一区二区三区天码| 亚洲开心激情| 婷婷成人基地| 国产一区二区三区四区| 亚洲精品影视| 日本免费久久| 麻豆精品视频在线观看| 亚洲天堂日韩在线| 亚洲一级高清| 国产日韩电影| 久久久久九九精品影院| 国产精品日韩精品中文字幕| 影音先锋久久精品| 日韩另类视频| 欧美亚洲综合视频| 欧美日韩中文一区二区| 麻豆极品一区二区三区| 亚洲青青久久| 亚洲精品视频一二三区| 久久精品不卡| 国产在线观看91一区二区三区| 亚洲欧美不卡| 欧美午夜精彩| 黄毛片在线观看| 精品国产一区二| 精品国内亚洲2022精品成人| 久久精品99国产精品日本| 视频一区二区三区入口| 国产一区二区三区天码| 欧美日韩精品免费观看视完整| 国产在线视频欧美一区| 久久精品二区亚洲w码| 国产精品magnet| 国语精品一区|