中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

FFrpcpython客戶端lib使用的示例分析-創(chuàng)新互聯(lián)

這篇文章給大家分享的是有關(guān)FFrpc python客戶端lib使用的示例分析的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

創(chuàng)新互聯(lián)是一家專業(yè)從事網(wǎng)站設(shè)計制作、成都做網(wǎng)站的網(wǎng)絡(luò)公司。作為專業(yè)網(wǎng)站設(shè)計公司,創(chuàng)新互聯(lián)依托的技術(shù)實力、以及多年的網(wǎng)站運營經(jīng)驗,為您提供專業(yè)的成都網(wǎng)站建設(shè)、營銷型網(wǎng)站及網(wǎng)站設(shè)計開發(fā)服務(wù)!

摘要:

Ffrpc可以很方便的構(gòu)建c++ server, 在網(wǎng)游服務(wù)器程序開發(fā)中,進程間通訊非常的重要,比如gateserver和gameserver或dbserver之間的通信。而ffrpc可以使得進程間通信非常簡單,是由于ffrpc的broker模式封裝了位置無關(guān)性,使得如gate調(diào)用gameserver的接口只需要知道對方的服務(wù)名,從而使得程序中各個節(jié)點的關(guān)系與系統(tǒng)的拓撲關(guān)系是完美吻合的。這也使得系統(tǒng)的架構(gòu)更加清晰,系統(tǒng)的實現(xiàn)更健壯和易維護。

之前ffrpc只提供了c++ server/client的實現(xiàn),在網(wǎng)游服務(wù)器程序開發(fā)中經(jīng)常有些需求是需要其他語言和C++server通信的,比如一些工具程序,一些web配置、管理后臺登通常用腳本語言實現(xiàn)更加敏捷。比如開發(fā)一個gm后臺,就可以使用python開發(fā)一個web頁面實現(xiàn),而gm后臺指令需要發(fā)給c++ server去執(zhí)行。所以,腳本語言對于C++ server的的接口調(diào)用的需求是確實存在的。所以ffrpc中提供python的客戶端禮庫ffrpc-py。

特性

  • C++ server 通常是使用二進制協(xié)議傳輸數(shù)據(jù)的,但是如果手動用python組二進制包則非常的困難,好在有g(shù)oogle protobuf和thrift兩大神器,而google protobuf在服務(wù)器程序開發(fā)領(lǐng)域已經(jīng)被廣泛接受。所以由于C++ server定義接口時使用了protobuf(或者像我一樣偏愛thrift),那么與腳本通訊就變得小輕松了。

  • 對于C++ server 來講,通信時異步的,這是由于C++ server一般是邏輯層單線程,為了保持高并發(fā)能力,io操作異步化是必然選擇。但是對于腳本如python這種,一般而言還是使用同步調(diào)用模型,而剛好ffrpc的通信模式要求所有的接口都是req<->ret一一對應(yīng)的,ffrpc-py調(diào)用c++ server的接口,只需要制定輸入消息,然后調(diào)用接口,接收返回消息,像調(diào)用本地函數(shù)一樣直接,這也是rpc lib的存在意義。

  • Ffrpc-py 支持protobuf和thrift,當(dāng)然必須和c++ server采用的通信協(xié)議一致。

示例

本例采用c++ sever thrift作為示例。由于ffrpc example目錄的tutorial已經(jīng)實現(xiàn)了一個c++ echo server,本例就利用ffrpc-py調(diào)用echo接口。

其中thrift的定義文件為:

struct echo_thrift_in_t {   
 1: string data
}

struct echo_thrift_out_t {   
 1: string data
}

使用ffrpc-py調(diào)用echo接口:

HOST = '127.0.0.1'
  PORT = 10246
  ffc = ffclient_t(HOST, PORT, 1.5) # 1.5 sec為調(diào)用超時時間
  req = ttypes.echo_thrift_in_t('ohNice')
  ret = ttypes.echo_thrift_out_t()
  ffc.call('echo', req, ret, 'ff')
  print('error_info = %s' %(ffc.error_msg()), ret)

ffrpc接口的參數(shù)的解釋:

  • ffclient_t(HOST, PORT, 1.5) 構(gòu)造函數(shù)的參數(shù)為broker的監(jiān)聽地址和端口。Ffrpc-py只需要知道broker的位置,至于調(diào)用的是哪個服務(wù)器的接口,這個由broker確定,至于目標(biāo)服務(wù)器是跟broker在同一個進程,還是通過網(wǎng)絡(luò)連接,ffrpc-py無需知道細節(jié)。

  • call 接口調(diào)用遠程的服務(wù)器接口,參數(shù)一為c++server接口注冊的服務(wù)名,ffrpc-py只需要知道服務(wù)名就可以定位目標(biāo)服務(wù)器的位置

  • call第二個參數(shù)為請求參數(shù)

  • call第三個參數(shù)為c++ server返回的消息類型,如果call返回true,那么該消息會被自動賦上值

  • 第四個參數(shù)為消息的命名空間,比如定義thrift的文件的時候定義了命名空間,那么需要第四個參數(shù)填入命名空間,這里跟C++ server的注冊的消息一致即可,如果C++ server也沒有消息的命名空間,那么省略這個參數(shù)即可

  • Call接口成功返回True,失敗為false,同時error_msg接口可以輸出錯誤原因

感謝各位的閱讀!關(guān)于“FFrpc python客戶端lib使用的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

網(wǎng)站名稱:FFrpcpython客戶端lib使用的示例分析-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://www.rwnh.cn/article0/igeio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、云服務(wù)器面包屑導(dǎo)航、網(wǎng)站收錄、網(wǎng)站維護

廣告

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

h5響應(yīng)式網(wǎng)站建設(shè)
惠州市| 荆州市| 乐山市| 涿州市| 马尔康县| 长汀县| 恭城| 土默特右旗| 驻马店市| 刚察县| 西贡区| 清丰县| 新晃| 建水县| 安顺市| 疏勒县| 始兴县| 郸城县| 清原| 宜章县| 达尔| 南岸区| 五常市| 博客| 章丘市| 英山县| 长兴县| 磐石市| 通州区| 区。| 顺义区| 禹州市| 高青县| 常山县| 龙江县| 巢湖市| 旬邑县| 梁河县| 舒城县| 游戏| 伊宁县|