feat 网关鉴权
This commit is contained in:
@@ -25,7 +25,7 @@ func (s *Server) Enter(ctx context.Context, req *grpc_pb.EnterReq) (*grpc_pb.Ent
|
||||
|
||||
payload, _ := proto.Marshal(&sc_pb.S2C_EnterInstance{
|
||||
Info: &sc_pb.PositionInfo{
|
||||
UID: req.UID,
|
||||
USN: req.USN,
|
||||
X: 1,
|
||||
Y: 1,
|
||||
},
|
||||
|
||||
@@ -20,7 +20,7 @@ import (
|
||||
// Instance 场景类
|
||||
type Instance struct {
|
||||
wg sync.WaitGroup
|
||||
players map[int32]*npc.PlayerNode // 存储所有玩家节点 [uid]
|
||||
players map[int64]*npc.PlayerNode // 存储所有玩家节点 [usn]
|
||||
ctx context.Context // 停止指令
|
||||
cancel context.CancelFunc // 停止函数
|
||||
logger *zap.SugaredLogger // 日志
|
||||
@@ -35,7 +35,7 @@ type Instance struct {
|
||||
// NewScene 初始化场景
|
||||
func NewScene(sid int64, instanceID int32) *Instance {
|
||||
s := &Instance{
|
||||
players: make(map[int32]*npc.PlayerNode),
|
||||
players: make(map[int64]*npc.PlayerNode),
|
||||
SID: sid,
|
||||
InstanceID: instanceID,
|
||||
UniqueNo: utils.SnowflakeInstance().Generate().Int64(),
|
||||
@@ -91,13 +91,13 @@ func (i *Instance) Start(ttl int64) {
|
||||
func (i *Instance) onEvent(e proto.Message) {
|
||||
switch v := e.(type) {
|
||||
case *grpc_pb.EnterReq:
|
||||
i.players[v.UID] = npc.NewPlayerNode(v.GatewaySID, v.UID)
|
||||
i.players[v.USN] = npc.NewPlayerNode(v.GatewaySID, v.USN)
|
||||
case *grpc_pb.ActionReq:
|
||||
if node, ok := i.players[v.UID]; ok {
|
||||
if node, ok := i.players[v.USN]; ok {
|
||||
node.AddAction(v)
|
||||
}
|
||||
case *grpc_pb.LeaveReq:
|
||||
delete(i.players, v.UID)
|
||||
delete(i.players, v.USN)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -109,7 +109,7 @@ func (i *Instance) onLogic(delta int64) {
|
||||
for _, node := range i.players {
|
||||
if node.LogicAction(delta) {
|
||||
positionUpdate = append(positionUpdate, &sc_pb.PositionInfo{
|
||||
UID: int32(node.UID),
|
||||
USN: node.USN,
|
||||
X: int32(node.Position[0] * 100),
|
||||
Y: int32(node.Position[1] * 100),
|
||||
})
|
||||
@@ -121,7 +121,7 @@ func (i *Instance) onLogic(delta int64) {
|
||||
Info: positionUpdate,
|
||||
})
|
||||
if err := stream_client.SendMessageToGateway(sid, stream_client.FunToClient, &grpc_pb.ToClientReq{
|
||||
UID: -1,
|
||||
USN: -1,
|
||||
MessageID: int32(sc_pb.MessageID_MESSAGE_ID_POSITION),
|
||||
Payload: payload,
|
||||
}); err != nil {
|
||||
|
||||
@@ -6,7 +6,7 @@ import (
|
||||
|
||||
// NPCNode 定义NPC节点
|
||||
type NPCNode struct {
|
||||
UID int // 用户ID
|
||||
USN int64 // 用户ID
|
||||
GatewaySID int64 // 网关服务ID
|
||||
|
||||
Position [2]float64 // 二维坐标 [x, y]
|
||||
@@ -14,9 +14,9 @@ type NPCNode struct {
|
||||
Action []*grpc_pb.ActionReq // 其他操作
|
||||
}
|
||||
|
||||
func NewNPCNode(gatewaySID int64, uid int) *NPCNode {
|
||||
func NewNPCNode(gatewaySID int64, usn int64) *NPCNode {
|
||||
return &NPCNode{
|
||||
UID: uid,
|
||||
USN: usn,
|
||||
GatewaySID: gatewaySID,
|
||||
Position: [2]float64{0, 0},
|
||||
MoveCross: 0,
|
||||
|
||||
@@ -7,7 +7,7 @@ import (
|
||||
|
||||
// PlayerNode 定义玩家节点结构体
|
||||
type PlayerNode struct {
|
||||
UID int32 // 用户ID
|
||||
USN int64 // 用户ID
|
||||
GatewaySID int64 // 网关服务ID
|
||||
MoveSpeed float32 // 移动速度
|
||||
|
||||
@@ -17,9 +17,9 @@ type PlayerNode struct {
|
||||
Action []*grpc_pb.ActionReq // 其他操作
|
||||
}
|
||||
|
||||
func NewPlayerNode(gatewaySID int64, uid int32) *PlayerNode {
|
||||
func NewPlayerNode(gatewaySID int64, usn int64) *PlayerNode {
|
||||
return &PlayerNode{
|
||||
UID: uid,
|
||||
USN: usn,
|
||||
GatewaySID: gatewaySID,
|
||||
MoveSpeed: 5 * 0.00001,
|
||||
Position: [2]float32{0, 0},
|
||||
|
||||
Reference in New Issue
Block a user