- 在 rpc 包中添加了 g.Log() 调用,用于记录 RPC 服务器启动和错误信息 - 重构了 controller 包,将 LogicClient 从 Controller 结构体中分离出来 - 优化了 login 控制器中的 Login 方法,增加了新客户端的创建和数据发送逻辑 - 简化了 systemtime 控制器中的 SystemTimeInfo 方法 - 更新了 server.go 中的 Start 函数,使用 new(controller.LogicClient) 替代 controller.Maincontroller
34 lines
989 B
Go
34 lines
989 B
Go
package controller
|
|
|
|
import (
|
|
"blazing/common/data/entity"
|
|
"blazing/common/data/share"
|
|
"blazing/logic/service"
|
|
"blazing/logic/service/login"
|
|
"blazing/logic/service/maps"
|
|
|
|
"github.com/panjf2000/gnet/v2"
|
|
)
|
|
|
|
// 处理命令: 1001
|
|
func (h *Controller) Login(data *login.LoginSidInfo, c gnet.Conn) (result *maps.MapHotOutboundInfo, err service.OutInfo) { //这个时候player应该是空的
|
|
|
|
if tt := data.CheakSession(); tt { //说明sid正确
|
|
h.RPCClient.Kick(data.Head.UserID) //先踢人
|
|
|
|
// h.RPCClient.UserLogin(int32(h.Port), int32(data.Head.UserID)) //初始化用户登录
|
|
t := service.SetPlayer(c, data.Head.UserID)
|
|
|
|
share.ShareManager.SetUserOnline(data.Head.UserID, h.Port) //设置用户登录服务器
|
|
t.CompleteLogin() //通知客户端登录成功
|
|
|
|
r := entity.NewConn(c) //这里实现新增客户端
|
|
r.SendPack(data.Def())
|
|
|
|
} else {
|
|
err = &login.LoginErr{}
|
|
return
|
|
}
|
|
return
|
|
}
|