"refactor(network): 重构连接处理逻辑,使用自定义Conn类型替代gnet.Conn依赖"
This commit is contained in:
@@ -18,7 +18,6 @@ import (
|
||||
"github.com/gogf/gf/v2/os/glog"
|
||||
"github.com/gogf/gf/v2/util/gconv"
|
||||
"github.com/lunixbochs/struc"
|
||||
"github.com/panjf2000/gnet/v2"
|
||||
)
|
||||
|
||||
var Maincontroller = NewController() //注入service
|
||||
@@ -160,7 +159,7 @@ func getcmd(t reflect.Type) uint32 {
|
||||
}
|
||||
|
||||
// 遍历结构体方法并执行RECV_cmd
|
||||
func Recv(c gnet.Conn, data handler.TomeeHeader) {
|
||||
func Recv(c *entity.Conn, data handler.TomeeHeader) {
|
||||
|
||||
cmdlister, ok := cool.CmdCache.Load(data.CMD)
|
||||
if !ok {
|
||||
@@ -209,7 +208,7 @@ func Recv(c gnet.Conn, data handler.TomeeHeader) {
|
||||
if len(ret) <= 0 { //如果判断没有参数,那就说明这个包没有返回参数
|
||||
return
|
||||
}
|
||||
r := entity.NewConn(c) //这里实现新增客户端
|
||||
|
||||
aa, ok := ret[1].Interface().(service.OutInfo) //判断错误
|
||||
|
||||
if ok && aa != nil { //这里实现回复错误包
|
||||
@@ -217,11 +216,11 @@ func Recv(c gnet.Conn, data handler.TomeeHeader) {
|
||||
g.Log().Error(context.Background(), aa.Error(), aa.Code())
|
||||
|
||||
data.Result = uint32(aa.Code())
|
||||
r.SendPack(data.Pack(nil))
|
||||
c.SendPack(data.Pack(nil))
|
||||
return
|
||||
|
||||
}
|
||||
|
||||
r.SendPack(data.Pack(ret[0].Interface()))
|
||||
c.SendPack(data.Pack(ret[0].Interface()))
|
||||
|
||||
}
|
||||
|
||||
@@ -5,12 +5,10 @@ import (
|
||||
"blazing/common/data/share"
|
||||
"blazing/logic/service"
|
||||
"blazing/logic/service/login"
|
||||
|
||||
"github.com/panjf2000/gnet/v2"
|
||||
)
|
||||
|
||||
// 处理命令: 1001
|
||||
func (h *Controller) Login(data *login.InInfo, c gnet.Conn) (result *login.OutInfo, err service.OutInfo) { //这个时候player应该是空的
|
||||
func (h *Controller) Login(data *login.InInfo, c *entity.Conn) (result *login.OutInfo, err service.OutInfo) { //这个时候player应该是空的
|
||||
|
||||
if tt := data.CheakSession(); tt { //说明sid正确
|
||||
h.RPCClient.Kick(data.Head.UserID) //先踢人
|
||||
@@ -21,8 +19,8 @@ func (h *Controller) Login(data *login.InInfo, c gnet.Conn) (result *login.OutIn
|
||||
share.ShareManager.SetUserOnline(data.Head.UserID, h.Port) //设置用户登录服务器
|
||||
t.CompleteLogin() //通知客户端登录成功
|
||||
|
||||
r := entity.NewConn(c) //这里实现新增客户端
|
||||
r.SendPack(data.Def())
|
||||
|
||||
c.SendPack(data.Def())
|
||||
|
||||
} else {
|
||||
err = &login.LoginErr{}
|
||||
|
||||
Reference in New Issue
Block a user