![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
zinx学习
磨镜台
牢骚太盛防肠断,风物长宜放眼量。
展开
-
Zinx-V0.6 多路由模式
不同的Message对应不同的业务消息管理模块支持多路由调度管理,拥有一个Router集合属性抽象层type IMsgHandler interface { //添加路由的方法 AddRouter(msgID uint32, router IRouter) //调度路由的方法 DoMsgHandler(request ziface,IRequest)}实现层属性//路由集...原创 2019-05-25 21:03:48 · 141 阅读 · 0 评论 -
Zinx-V0.4 全局配置文件
Zinx-V0.4 全局配置文件zinx服务器配置一个zinx配置文件zinx服务器在server在启动的时候加载zinx.json配置文件提供一个全局的配置文件对象,来存放全部的zinx配置,供其他模块使用全局GlobalObj对象type GlobalObj struct { Host string Port int Name string Version string...原创 2019-05-23 20:07:15 · 172 阅读 · 1 评论 -
Zinx-V0.3 router
Zinx-V0.3 router用户能够自定义自己的读写业务方法router模块属性方法PreHandle方法:用户在处理业务之前,自定义一些业务Handle方法:业务处理的核心方法PostHandle方法:用户处理业务之后定义的方法上面3个方法是模板抽象层type IRouter interface { PreHandle (request IRequest) Handl...原创 2019-05-23 20:02:52 · 130 阅读 · 0 评论 -
Zinx-V0.2 链接模块和request模块
Zinx-V0.2链接模块链接的封装和业务的绑定属性原生套接字 net.Conn链接ID uint32当前的conn是否是关闭状态isClosed bool与当前链接绑定的客户端业务方法启动链接:当链接模块进行,读写操作。 //先进行读业务 go c.StartReader //再进行写业务 处理读业务的Reader方法,调用已经注册好的Hand...原创 2019-05-23 19:46:14 · 125 阅读 · 0 评论 -
Zinx版本0.1
Zinx-V0.1抽象层Server模块的抽象层type IServer interface { //启动服务器 //停止服务器 //运行服务器}type IServer interface { Serve() Close() Start()}server模块属性ip版本监听ip(0.0.0.0 全网监控)监听端口名称type Se...原创 2019-05-22 20:01:04 · 318 阅读 · 0 评论 -
Zinx框架模块
基于Golang解决的长连接并发服务器框架框架模块基础server链接的封装和业务的绑定基础的router模块配置文件,全局配置消息的封装多路的模式读写分离的模型消息队列和任务池功能链接管理(最大连接数)链接属性...原创 2019-05-22 19:18:07 · 675 阅读 · 0 评论 -
Zinx-V0.9 链接管理模块
链接管理模块属性Connection链接的集合针对map的互斥锁方法添加链接//添加链接func (cm *ConnManager) Add(conn ziface.IConnection) { //加锁 cm.connLock.Lock() defer cm.connLock.Unlock() cm.connections[conn.GetConnID()] = conn...原创 2019-05-26 20:39:39 · 167 阅读 · 0 评论 -
Zinx-v0.8消息队列和任务池
消息队列和任务池原来一个链接对应一个Reader和一个Writer,一个消息对应Handler原来客户端发一个Message,服务器会开辟一个Handler Goroutine去处理业务。很多Message会有很多Handler Goroutine为了提高性能,要降低Gorouine数量手段:让处理业务的 Handler Goroutine和消息无关制定一个worker处理业务启动...原创 2019-05-26 19:30:30 · 182 阅读 · 0 评论 -
Zinx_V0.7 读写分离
读写分离添加一个Reader和Writer之间的通信channel添加一个Writer Goroutine阻塞等待channel是否有需要的数据过来将数据回写给conn对应的客户端Reader由之前的同时启动Writer和Reader的Goroutine处理Writer退出,当触发c.Stop()告知Writer退出修改Connection模块结构体 //...原创 2019-05-26 19:23:51 · 134 阅读 · 0 评论 -
Zinx-V0.5 封包和拆包
Zinx-v0.5为了解决tcp粘包问题消息封装模块属性消息id消息的内容消息的长度抽象层type IMessage interface { //getter GetMsgId() uint32 GetMsgLen() uint32 GetMsgData() []byte //setter SetMsgId(uint32) SetMsgLen(uint32)...原创 2019-05-25 21:15:21 · 256 阅读 · 0 评论 -
AOI兴趣点算法(九宫格)
AOI兴趣点算法(九宫格)AOI格子的结构体模块格子ID格子的左边边界坐标格子的右边边界坐标格子的上边边界坐标格子的下边边界坐标当前格子内 玩家/物体 成员的ID集合 :map[ID]保护格子内容map的锁属性type Grid struct {//格子IDGID int//格子的左边边界坐标MinX int//格子的右边边界坐标MaxX int//格子的上边...原创 2019-05-28 20:48:20 · 3266 阅读 · 0 评论