43 lines
1.0 KiB
Go
43 lines
1.0 KiB
Go
package api
|
|
|
|
import (
|
|
"github.com/aceld/zinx/ziface"
|
|
"github.com/aceld/zinx/zlog"
|
|
"github.com/aceld/zinx/znet"
|
|
"omc/omc"
|
|
)
|
|
|
|
// HeartBeatApi 心跳请求
|
|
type HeartBeatApi struct {
|
|
znet.BaseRouter
|
|
}
|
|
|
|
func (*HeartBeatApi) Handle(request ziface.IRequest) {
|
|
// 解包
|
|
msgBody := omc.MsgBody{
|
|
RawData: request.GetData(),
|
|
Msg: make(map[string]string, 0),
|
|
}
|
|
if err := msgBody.Decode(); err != nil {
|
|
zlog.Ins().ErrorF("inlaid message body %s", err.Error())
|
|
request.GetConnection().SendMsg(omc.AckHeartBeat, omc.ErrorMsg("ackHeartBeat", "", "inlaid message body"))
|
|
return
|
|
}
|
|
|
|
reqId, ok := msgBody.Msg["reqId"]
|
|
if !ok {
|
|
zlog.Ins().ErrorF("missing parameter of message body")
|
|
request.GetConnection().SendMsg(omc.AckHeartBeat, omc.ErrorMsg("ackHeartBeat", "", "missing parameter of message body"))
|
|
return
|
|
}
|
|
|
|
//ack
|
|
ackBody := omc.MsgBody{
|
|
MsgName: "ackHeartBeat",
|
|
Msg: make(map[string]string, 0),
|
|
}
|
|
ackBody.Msg["reqId"] = reqId
|
|
ackBody.Pack()
|
|
request.GetConnection().SendMsg(omc.AckHeartBeat, ackBody.RawData)
|
|
}
|