package router import ( "fmt" "omc/conf" "omc/core/decoder" "omc/core/dpack" heartbeat "omc/core/heart_beat" "omc/core/manage" "omc/handle/api" "time" "github.com/aceld/zinx/zconf" "github.com/aceld/zinx/ziface" "github.com/aceld/zinx/znet" ) func LoadServer(cg conf.Channel) ziface.IServer { serverName := fmt.Sprintf("%s:%d", cg.BindFlag, cg.TCPPort) //new 一个TCP服务 s := znet.NewUserConfServer(&zconf.Config{ TCPPort: cg.TCPPort, Name: serverName, Host: "0.0.0.0", MaxConn: conf.OmcConf.MaxConn, WorkerPoolSize: uint32(conf.OmcConf.WorkerPoolSize), HeartbeatMax: conf.OmcConf.HeartbeatMax, LogDir: conf.OmcConf.LogDir, LogFile: conf.OmcConf.LogFile, }) //注册客户端连接建立和丢失函数 s.SetOnConnStart(manage.OnConnectionAdd) s.SetOnConnStop(manage.OnConnectionLost) //添加LTV数据格式Decoder s.SetDecoder(decoder.NewOmcDecoder()) //添加LTV数据格式的Pack封包Encoder s.SetPacket(dpack.NewDataPack()) // (启动心跳检测) s.StartHeartBeatWithOption(60*time.Second, &ziface.HeartBeatOption{ MakeMsg: heartbeat.MyHeartBeatMsg, OnRemoteNotAlive: heartbeat.MyOnRemoteNotAlive, Router: &api.ReqHeartBeat{}, HeadBeatMsgID: api.ReqHeartBeatMsgID, }) // 设置默认的心跳发送函数 heart := s.GetHeartBeat() heart.SetHeartbeatFunc(heartbeat.MyHeartBeat) // 添加自定义拦截器 debug调试输出信息用 // s.AddInterceptor(&interceptor.GlobalInterceptor{}) //注册路由 ================ s.AddRouter(api.ReqLoginAlarmMsgID, &api.ReqLoginAlarm{}) s.AddRouter(api.ReqCMCALoginSeqMsgID, &api.ReqCMCALoginSeq{}) s.AddRouter(api.ReqCMCALoginAlarmMsgID, &api.ReqCMCALoginAlarm{}) s.AddRouter(api.ReqSyncAlarmMsgID, &api.ReqSyncAlarmMsg{}) s.AddRouter(api.ReqSyncAlarmFileID, &api.ReqSyncAlarmFile{}) s.AddRouter(api.CloseConnAlarmMsgID, &api.CloseConnAlarm{}) return s }