老的基于多線程網(wǎng)絡(luò)的腳本通訊系統(tǒng)。
老網(wǎng)絡(luò)基于zeromq線程通訊保留。接口保持不變。
基于nanomsg的服務(wù)器組件間通訊,功能同老的一樣。
client-game的通訊需要通過gate提供老網(wǎng)絡(luò)和新網(wǎng)絡(luò)的轉(zhuǎn)發(fā)。
gate-game
老網(wǎng)絡(luò)在gate上在網(wǎng)絡(luò)層 向game nano消息。如果是鏈接和斷開則通知自己的workthread,他需要管理發(fā)送的句柄。
game工作線程nano收消息,腳本邏輯處理之后nano消息給gate。
gate工作線程nano到消息,轉(zhuǎn)換成舊網(wǎng)絡(luò)封包并發(fā)回去。(無腳本處理 )
問題:無法直接使用老網(wǎng)絡(luò)框架和新網(wǎng)絡(luò)框架。框架都是基于腳本的,在通訊的雙端都有自動生成lua對象處理。
解決:
目前gate作為特殊的個體進(jìn)行配置。?
作為c-g的服務(wù)器,除了監(jiān)聽之外,并不生成腳本。消息來之后直接拋向game.
作為gate-game的服務(wù)器,除了監(jiān)聽之外,并不生成腳本。收到的消息直接轉(zhuǎn)成老網(wǎng)絡(luò)事件并發(fā)送。將作為單獨(dú)而獨(dú)立的c++功能存在。
老網(wǎng)絡(luò)轉(zhuǎn)新網(wǎng)絡(luò)將作為gate服務(wù)器獨(dú)立的功能。
是否也可以抽象出來成為單獨(dú)的功能?目前看沒有必要性。