添加了节点服务器,各个服务器之间支持多对多

This commit is contained in:
flswld
2022-12-24 04:14:33 +08:00
parent 16dd9c1e87
commit 7e86669628
92 changed files with 1429 additions and 287 deletions

View File

@@ -2,6 +2,7 @@ package handle
import (
"hk4e/common/mq"
"hk4e/node/api"
"hk4e/pathfinding/world"
"hk4e/pkg/logger"
"hk4e/protocol/cmd"
@@ -34,12 +35,15 @@ func (h *Handle) run() {
if netMsg.EventId != mq.NormalMsg {
continue
}
if netMsg.OriginServerType != api.GATE {
continue
}
gameMsg := netMsg.GameMsg
switch gameMsg.CmdId {
case cmd.QueryPathReq:
h.QueryPath(gameMsg.UserId, gameMsg.PayloadMessage)
h.QueryPath(gameMsg.UserId, netMsg.OriginServerAppId, gameMsg.PayloadMessage)
case cmd.ObstacleModifyNotify:
h.ObstacleModifyNotify(gameMsg.UserId, gameMsg.PayloadMessage)
h.ObstacleModifyNotify(gameMsg.UserId, netMsg.OriginServerAppId, gameMsg.PayloadMessage)
}
}
}()
@@ -47,7 +51,7 @@ func (h *Handle) run() {
}
// SendMsg 发送消息给客户端
func (h *Handle) SendMsg(cmdId uint16, userId uint32, payloadMsg pb.Message) {
func (h *Handle) SendMsg(cmdId uint16, userId uint32, gateAppId string, payloadMsg pb.Message) {
if userId < 100000000 || payloadMsg == nil {
return
}
@@ -62,7 +66,7 @@ func (h *Handle) SendMsg(cmdId uint16, userId uint32, payloadMsg pb.Message) {
return
}
gameMsg.PayloadMessageData = payloadMessageData
h.messageQueue.SendToGate("1", &mq.NetMsg{
h.messageQueue.SendToGate(gateAppId, &mq.NetMsg{
MsgType: mq.MsgTypeGame,
EventId: mq.NormalMsg,
GameMsg: gameMsg,

View File

@@ -41,9 +41,9 @@ func (h *Handle) ConvMeshVecListToPbVecList(meshVecList []pfalg.MeshVector) []*p
return ret
}
func (h *Handle) QueryPath(userId uint32, payloadMsg pb.Message) {
func (h *Handle) QueryPath(userId uint32, gateAppId string, payloadMsg pb.Message) {
req := payloadMsg.(*proto.QueryPathReq)
logger.Debug("query path req: %v, uid: %v", req, userId)
logger.Debug("query path req: %v, uid: %v, gateAppId: %v", req, userId, gateAppId)
var ok = false
var path []pfalg.MeshVector = nil
for _, destinationPos := range req.DestinationPos {
@@ -57,7 +57,7 @@ func (h *Handle) QueryPath(userId uint32, payloadMsg pb.Message) {
QueryId: req.QueryId,
QueryStatus: proto.QueryPathRsp_PATH_STATUS_TYPE_FAIL,
}
h.SendMsg(cmd.QueryPathRsp, userId, queryPathRsp)
h.SendMsg(cmd.QueryPathRsp, userId, gateAppId, queryPathRsp)
return
}
queryPathRsp := &proto.QueryPathRsp{
@@ -65,10 +65,10 @@ func (h *Handle) QueryPath(userId uint32, payloadMsg pb.Message) {
QueryStatus: proto.QueryPathRsp_PATH_STATUS_TYPE_SUCC,
Corners: h.ConvMeshVecListToPbVecList(path),
}
h.SendMsg(cmd.QueryPathRsp, userId, queryPathRsp)
h.SendMsg(cmd.QueryPathRsp, userId, gateAppId, queryPathRsp)
}
func (h *Handle) ObstacleModifyNotify(userId uint32, payloadMsg pb.Message) {
func (h *Handle) ObstacleModifyNotify(userId uint32, gateAppId string, payloadMsg pb.Message) {
req := payloadMsg.(*proto.ObstacleModifyNotify)
logger.Debug("obstacle modify req: %v, uid: %v", req, userId)
logger.Debug("obstacle modify req: %v, uid: %v, gateAppId: %v", req, userId, gateAppId)
}