83 lines
2.2 KiB
Go
83 lines
2.2 KiB
Go
package router
|
|
|
|
import (
|
|
"fmt"
|
|
"omc/conf"
|
|
"omc/core/decoder"
|
|
"omc/core/dpack"
|
|
heartbeat "omc/core/heart_beat"
|
|
"omc/core/interceptor"
|
|
"omc/core/manage"
|
|
"omc/handle/api"
|
|
"time"
|
|
|
|
"github.com/aceld/zinx/zconf"
|
|
"github.com/aceld/zinx/ziface"
|
|
"github.com/aceld/zinx/znet"
|
|
)
|
|
|
|
const (
|
|
RealTimeAlarm = 0
|
|
ReqLoginAlarm = 1
|
|
AckLoginAlarm = 2
|
|
ReqSyncAlarmMsg = 3
|
|
AckSyncAlarmMsg = 4
|
|
ReqSyncAlarmFile = 5
|
|
AckSyncAlarmFile = 6
|
|
AckSyncAlarmFileResult = 7
|
|
ReqHeartBeat = 8
|
|
AckHeartBeat = 9
|
|
CloseConnAlarm = 10
|
|
ReqCMCALoginAlarm = 11
|
|
ReqCMCALoginSeq = 12
|
|
AckCMCALoginSeq = 13
|
|
)
|
|
|
|
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)
|
|
|
|
// 添加自定义拦截器
|
|
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.CloseConnAlarmMsgID, &api.CloseConnAlarm{})
|
|
|
|
return s
|
|
}
|