Posted on 2012-07-23 15:50
點(diǎn)點(diǎn)滴滴 閱讀(737)
評論(0) 編輯 收藏 引用 所屬分類:
10 服務(wù)器
game server內(nèi)嵌的http服務(wù)
如何使gs響應(yīng)http的請求? 基本思路 實(shí)現(xiàn)簡單的http server框架、具體游戲邏輯轉(zhuǎn)發(fā)給內(nèi)部handler來處理
一 初始化
開啟監(jiān)聽線程(協(xié)程)檢查端口、設(shè)置緩沖區(qū)大小
每一個(gè)socket連過來時(shí) 1、開新協(xié)程處理(有調(diào)度開銷) 2、放入共享隊(duì)列中,由worker線程池共同維護(hù)(有數(shù)據(jù)同步的問題)
設(shè)置每個(gè)請求URI對應(yīng)的回調(diào)接口
二 服務(wù)期
1、一個(gè)socket數(shù)據(jù)到來后,開新線程,解析http數(shù)據(jù),分析出請求的uri、回調(diào)、關(guān)閉socket、關(guān)閉線程(因?yàn)閔ttp是無連接的)
2、一個(gè)socket到來時(shí),其被放入某個(gè)thread內(nèi)部的sockets數(shù)組中,
當(dāng)此worker thread池被調(diào)度到之后,依次處理每個(gè)socket的數(shù)據(jù)就可以了(唯一區(qū)別是多個(gè)sockets由幾個(gè)線程維護(hù))