不同的message對應不同的業務
訊息管理模組
支援多路由排程管理,擁有乙個router集合屬性
抽象層
type imsghandler inte***ce
實現層
屬性
//路由集合
map[uint32] router
方法
新增路由的方法
//新增路由的方法
func (ms *msghandler)addrouter(msgid uint32, router ziface.irouter)
//新增msgid和router的對應關係
ms.routers[msgid] = router
return
}
排程路由的方法
//排程路由的方法
func (ms *msghandler)domsghandler(request ziface.irequest)
修改
改修connection模組
結構體
//新增
//訊息管理模組 多路由
msghandler ziface.imsghandler
建構函式
//建立乙個新的連線
func newconnection(conn *net.tcpconn, connid uint32, msghandler ziface.imsghandler) ziface.iconnection
return c
}
方法
//針對鏈結讀業務的方法
func (c *connection) startreader()
修改server模組
結構體
//新增
//訊息管理模組 多路由
msghandler ziface.imsghandler
建構函式
func newserver() ziface.iserver
}
新增路由方法
func (s *server) addrouter(msgid uint32, router ziface.irouter)
Zinx V0 7 讀寫分離
讀寫分離 新增乙個reader和writer之間的通訊channel 新增乙個writer goroutine 阻塞等待channel是否有需要的資料過來 將資料回寫給conn對應的客戶端 reader由之前的 同時啟動writer和reader的goroutine 處理writer退出,當觸發c....
Zinx V0 9 鏈結管理模組
鏈結管理模組 屬性connection鏈結的集合 針對map的互斥鎖 方法新增鏈結 新增鏈結 func cm connmanager add conn ziface.iconnection 刪除鏈結 func cm connmanager remove connid uint32 根據鏈結id得到鏈...
Zinx V0 7的讀寫分離模型
將zinx的讀寫模型變為 把reader中的訊息通過channel傳遞給writer,使讀寫分離 1.在connection中新增乙個channel用來給writer傳遞資料,再新增乙個channel用來傳遞connection的關閉資訊 type connection struct 初始化的時候將...