游戲服務器Transport設置
游戲服務器Transport設置
此層次是為了統一各種不同的底層傳輸協議而設置的,最基本應該支持 TCP 和 UDP 這兩種協議。對于通信協議的抽象,其實在很多底層庫也做的非常好了,比如 Linux 的 socket 庫,其讀寫 API 甚至可以和文件的讀寫通用。C# 的 Socket 庫在 TCP 和 UDP 之間,其 api 也幾乎是完全一樣的。但是由于作用游戲服務器,很多適合還會接入一些特別的“接入層”,比如一些代理游戲服務器,或者一些消息中間件,這些 API 可是五花八門的。另外,在 html5 游戲(比如微信小游戲)和一些頁游領域,還有用 HTTP 服務器作為游戲服務器的傳統(如使用 WebSocket 協議),這樣就需要一個完全不同的傳輸層了。
游戲服務器傳輸層在異步模型下的基本使用序列,就是:
在主循環中,不斷嘗試讀取有什么數據可讀
如果上一步返回有數據到達了,則讀取數據
讀取數據處理后,需要發送數據,則向網絡寫入數據【艾娜】