開源游戲服務(wù)器端框架Firefly正式將GFirefly整合!
Firefly 的重要迭代版本 GFirefly 已經(jīng)獨(dú)立推出并運(yùn)維了進(jìn)9個月時間,已有200余家國內(nèi)各大手機(jī)游戲廠商開始陸續(xù)使用GFirefly 進(jìn)行其新手游產(chǎn)品的開發(fā)。(2014游戲行業(yè)國內(nèi)最大黑馬“龍圖游戲”有3款自研產(chǎn)品均使用GFirefly)
鑒于從0.1.2版本開始GFirefly已經(jīng)基本穩(wěn)定,本次Firefly官方正式宣布將GFirefly整合進(jìn)Firefly官方git中。
GFirefly(全稱:Firefly-Gevent)是Firefly的Gevent版本,相比之前Firefly版本中所使用的Twisted,Gevent更加的精簡和高效。
GFirefly結(jié)合了Gevent的性能,封裝了網(wǎng)絡(luò)IO處理、數(shù)據(jù)庫IO讀寫緩存、分布式進(jìn)程間接口調(diào)用,這樣使得游戲server端的開發(fā)變得既輕松簡單又穩(wěn)定高效。開發(fā)者不必在去糾結(jié)處理這些技術(shù)難題,專心致力于游戲玩法邏輯的開發(fā)即可。
與之前的Firefly相比,GFirefly省略了遠(yuǎn)程調(diào)用過程中添加回調(diào)函數(shù)callback的步驟。
你可以這樣去寫遠(yuǎn)程調(diào)用的方法:
result = root.callChild("test_node",1,u'Root測試')
#這里不會阻塞的,在結(jié)果返回之前會執(zhí)行別的協(xié)程
print result
#當(dāng)結(jié)果返回的時候會繼續(xù)往下執(zhí)行
此次更新的GFirefly alpha 0.1.5做了如下的改進(jìn):
1、 單node節(jié)點(diǎn)斷開與root節(jié)點(diǎn)的連接后自動重連。
2、 修改了GFirefly的底層庫GTiwsted(Firefly官方自研),將socket發(fā)送數(shù)據(jù)放到一個協(xié)程中進(jìn)處理。在發(fā)送數(shù)據(jù)的時候,會將發(fā)送的數(shù)據(jù)放到一個隊(duì)列中有發(fā)送數(shù)據(jù)的協(xié)程讀取發(fā)送,解決了 AssertionError: This socket is already used by another greenlet 的錯誤。
Firefly官方維護(hù)團(tuán)隊(duì):9秒社團(tuán)
Firefly Git地址(內(nèi)含gfirefly):https://github.com/9miao/Firefly
Firefly OSC@GIT地址:http://git.oschina.net/9miao/firefly
GFirefly獨(dú)立Git地址:https://github.com/9miao/G-Firefly
GTwisted獨(dú)立Git地址:https://github.com/9miao/gtwisted