游戏服务器端分层构架
游戏的服务器端分成5个部分
- Server
用来进行创建TCP的socket,然后监听客户端的连接 - ConnHelper
用来连接数据库的工具类 - Controller
处理客户端请求,客户端请求发送到Server,Server调用相应的Controller进行处理 - Model
与数据库里的表相对应,一个Model类对应一个数据库表 - DAO
用来操作数据库
交互的流程
- 当客户端访问Server , server会去跟客户端建立连接,然后处理后续的客户端请求。
- Server端接收到请求之后,交给Controller进行处理。 不同的controller控制不同的请求,Server只有一个,它只需要一个的Server端接收客户端的连接,以及处理客户端请求。
- Control处理请求的某些情况下需要与数据库进行交互,即需要DAO层来进行交互。
- DAO要操作数据库,需要与两类打交道,一个是model类(一个model类对应一个数据库表),还有connHelper类。
交互优化
客户端跟server请求连接的时候,Server创建一个或多个client,使得一个客户端对应一个client每一个client用来维护和某一个客户端的连接,然后进行收发消息,并且后续请求都通过client进行处理。如果所有的客户端都共用一个client,那么查询起来会比较慢。
同理,client通过connHelper创建一个与数据库的连接,让client和数据库连接保持一对一关系,当client不需要连接时,把client和数据库的连接都销毁掉。