【回顾】
在昨天,写了博客,打算实现一个Game Server Frame.
并设定了初步目标。
【初步设计】
1. 今儿构思一番,画了一个Server的初步类图。考虑的不是很全面。
没有考虑如何实现热部署,没有考虑如何实现分布式,只是单纯的将TCP,UDP封装而已。
a) StreamIO类实现数据按1字节流向缓冲区,以及缓冲区按1字节流出数据。 在流入与流出的过程中实现AES256加密。
b) SocketHelper类实现数据包的发送与接收,与StreamIO类的关系为聚合。
(修改:此处考虑之后,决定合并为一个类。即将writer, reader, encrypt, decrypt函数迁移为socketHelper类的私有函数)。
c) Server类封装了消息队列、消息映射,以及连接池。与SocketHelper的关系为聚合。此处的设计稍微有些不合理,对于需求得把握不是很恰当,需要在实践中进行改进。
d) TCPServer与UDPServer为具体的逻辑处理类,继承自Server类。此处应当考虑下线程、进程以及分布式。
注:socket部分的实现,处于性能目的考虑,将依赖于libevent。
【代码】
代码尚未实现,需要在今天补上。
并push到bitbucket上。
地址:https://bitbucket.org/Allen_Wu/gas
项目名暂定为Gas。Gas原意为瓦斯、天然气。在此处,引申为能源,希望能通过这个项目给自己充满能量,且永不枯竭。