66 lines
1.9 KiB
Go
66 lines
1.9 KiB
Go
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
|
|
}
|