游戏服务器Transport设置
游戏服务器Transport设置
此层次是为了统一各种不同的底层传输协议而设置的,最基本应该支持 TCP 和 UDP 这两种协议。对于通信协议的抽象,其实在很多底层库也做的非常好了,比如 Linux 的 socket 库,其读写 API 甚至可以和文件的读写通用。C# 的 Socket 库在 TCP 和 UDP 之间,其 api 也几乎是完全一样的。但是由于作用游戏服务器,很多适合还会接入一些特别的“接入层”,比如一些代理游戏服务器,或者一些消息中间件,这些 API 可是五花八门的。另外,在 html5 游戏(比如微信小游戏)和一些页游领域,还有用 HTTP 服务器作为游戏服务器的传统(如使用 WebSocket 协议),这样就需要一个完全不同的传输层了。
游戏服务器传输层在异步模型下的基本使用序列,就是:
在主循环中,不断尝试读取有什么数据可读
如果上一步返回有数据到达了,则读取数据
读取数据处理后,需要发送数据,则向网络写入数据【艾娜】