| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- package baseserver
- import (
- "log"
- "rocommon"
- "rocommon/socket"
- gatemodel "roserver/gate/model"
- )
- func init() {
- log.SetFlags(log.Lshortfile | log.LstdFlags)
- log.Println("base server init hooker [RegisterProcessRPC]")
- //gate处理前端
- socket.RegisterProcessRPC("gate.frontend",
- func(b rocommon.ProcessorRPCBundle, userCb rocommon.EventCallBack, arg ...interface{}) {
- b.SetTransmitter(new(gatemodel.DirectTCPMessageProcessor)) //直接传递数据或者返回数据给client,例如pingack
- b.SetHooker(socket.NewMultiTCPEventHook(
- new(gatemodel.FrontendTCPEventHook), //gate消息处理
- new(socket.TCPEventHook), //基础消息处理
- ))
- b.SetCallback(socket.QueueEventCall(userCb))
- })
- //gate websocket前端处理
- socket.RegisterProcessRPC("gatews.frontend",
- func(b rocommon.ProcessorRPCBundle, userCb rocommon.EventCallBack, arg ...interface{}) {
- b.SetTransmitter(new(gatemodel.DirectWSMessageTransmitter)) //直接传递数据或者返回数据给client,例如pingack
- b.SetHooker(socket.NewMultiTCPEventHook(
- new(gatemodel.FrontendTCPEventHook), //gate消息处理
- new(socket.TCPEventHook), //基础消息处理
- ))
- b.SetCallback(socket.QueueEventCall(userCb))
- })
- //gate连接后端的处理
- socket.RegisterProcessRPC("gate.backend",
- func(b rocommon.ProcessorRPCBundle, userCb rocommon.EventCallBack, arg ...interface{}) {
- b.SetTransmitter(new(socket.TCPMessageProcessor)) //pb 解析数据
- b.SetHooker(socket.NewMultiTCPEventHook(
- new(ServerTCPEventHook), //服务器间互联消息处理
- new(gatemodel.BroadcasterTCPEventHook), //gate消息处理
- new(socket.TCPEventHook), //基础消息处理
- ))
- b.SetCallback(socket.QueueEventCall(userCb))
- })
- //todo...
- //回调处理器绑定
- //后端服务器处理
- socket.RegisterProcessRPC("game.backend",
- func(b rocommon.ProcessorRPCBundle, userCb rocommon.EventCallBack, arg ...interface{}) {
- b.SetTransmitter(new(socket.TCPMessageProcessor)) //pb解析数据
- b.SetHooker(socket.NewMultiTCPEventHook(
- new(ServerTCPEventHook), //服务器间互联消息处理
- new(BackendTCPEventHook), //game服务器处理gate透传过来的消息
- new(socket.TCPEventHook), //基础消息处理
- ))
- b.SetCallback(socket.QueueEventCall(userCb))
- })
- //todo...
- //db处理game的请求
- socket.RegisterProcessRPC("db.backend",
- func(b rocommon.ProcessorRPCBundle, userCb rocommon.EventCallBack, arg ...interface{}) {
- b.SetTransmitter(new(socket.TCPMessageProcessor))
- b.SetHooker(socket.MultiTCPEventHook{
- new(ServerTCPEventHook), //服务器间互联消息处理
- new(ServiceTCPEventHook), //和db服务器相关的协议处理
- new(socket.TCPEventHook), //基础消息处理
- })
- b.SetCallback(socket.QueueEventCall(userCb))
- })
- //auth处理gate请求,后续的登陆验证
- socket.RegisterProcessRPC("auth.backend",
- func(b rocommon.ProcessorRPCBundle, userCb rocommon.EventCallBack, arg ...interface{}) {
- b.SetTransmitter(new(socket.TCPMessageProcessor))
- b.SetHooker(socket.MultiTCPEventHook{
- new(ServerTCPEventHook), //服务器间互联消息处理
- new(BackendTCPEventHook), //和gate服务器相关的协议处理
- new(socket.TCPEventHook), //基础消息处理
- })
- b.SetCallback(socket.QueueEventCall(userCb))
- })
- //social处理聊天,好友,邮件等信息
- socket.RegisterProcessRPC("social.backend",
- func(b rocommon.ProcessorRPCBundle, userCb rocommon.EventCallBack, arg ...interface{}) {
- b.SetTransmitter(new(socket.TCPMessageProcessor))
- b.SetHooker(socket.MultiTCPEventHook{
- new(ServerTCPEventHook), //服务器间互联消息处理
- new(BackendTCPEventHook), //和game服务器相关的协议处理
- new(socket.TCPEventHook), //基础消息处理
- })
- b.SetCallback(socket.QueueEventCall(userCb))
- })
- //aoi同步处理
- socket.RegisterProcessRPC("aoi.backend",
- func(b rocommon.ProcessorRPCBundle, userCb rocommon.EventCallBack, arg ...interface{}) {
- b.SetTransmitter(new(socket.TCPMessageProcessor))
- b.SetHooker(socket.MultiTCPEventHook{
- new(ServerTCPEventHook), //服务器间互联消息处理
- new(BackendTCPEventHook),
- new(socket.TCPEventHook), //基础消息处理
- })
- b.SetCallback(socket.QueueEventCall(userCb))
- })
- //common
- socket.RegisterProcessRPC("common.backend",
- func(b rocommon.ProcessorRPCBundle, userCb rocommon.EventCallBack, arg ...interface{}) {
- b.SetTransmitter(new(socket.TCPMessageProcessor))
- b.SetHooker(socket.MultiTCPEventHook{
- new(ServerTCPEventHook), //服务器间互联消息处理
- new(BackendTCPEventHook),
- new(socket.TCPEventHook), //基础消息处理
- })
- b.SetCallback(socket.QueueEventCall(userCb))
- })
- //webgm
- socket.RegisterProcessRPC("http",
- func(b rocommon.ProcessorRPCBundle, userCb rocommon.EventCallBack, arg ...interface{}) {
- b.SetCallback(socket.QueueEventCall(userCb))
- })
- //corssrouter
- socket.RegisterProcessRPC("crossrouter.backend",
- func(b rocommon.ProcessorRPCBundle, userCb rocommon.EventCallBack, arg ...interface{}) {
- b.SetTransmitter(new(socket.TCPMessageProcessor))
- b.SetHooker(socket.MultiTCPEventHook{
- new(ServerTCPEventHook), //服务器间互联消息处理
- new(BackendTCPEventForCrossRouterHook),
- new(socket.TCPEventHook), //基础消息处理
- })
- b.SetCallback(socket.QueueEventCall(userCb))
- })
- }
|