- 新增 Conn 结构体的 NewConn 工厂方法 - 优化 Controller 中的 Recv 方法,增加错误处理逻辑 - 修改 GetServer、Login、MapHot 等方法的返回值类型 - 重构 SystemTimeInfo 方法,使用新的 OutInfo 接口 - 更新 CommendSvrInfo 结构体和相关方法 - 统一错误处理机制,使用新的 OutInfo 接口
28 lines
918 B
Go
28 lines
918 B
Go
package controller
|
|
|
|
import (
|
|
"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() //通知客户端登录成功
|
|
c.Write(data.Def()) //TODO 这里实现fake数据
|
|
|
|
}
|
|
return
|
|
}
|