"refactor(network): 重构连接处理逻辑,使用自定义Conn类型替代gnet.Conn依赖"

This commit is contained in:
1
2025-07-26 02:14:54 +00:00
parent 99318f6674
commit 459a779591
5 changed files with 17 additions and 27 deletions

View File

@@ -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()))
}

View File

@@ -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{}