refactor(socket): 重构 socket 模块

- 移除 common/data/socket 目录下的大部分文件
- 新增 service 目录,将 Player 和 Conn 结构体移至该目录
- 更新 LogicClient 中的方法签名,使用 service 包的类型
- 重构 Controller 中的方法,适应新的 service 包结构
This commit is contained in:
2025-09-04 02:00:57 +08:00
parent afdf015d62
commit 621a9d3858
50 changed files with 886 additions and 849 deletions

View File

@@ -1,9 +1,9 @@
package controller
import (
"blazing/common/data/socket"
"blazing/common/socket"
"blazing/common/socket/errorcode"
"blazing/common/socket/handler"
"blazing/cool"
"blazing/logic/service"
"os"
@@ -38,7 +38,7 @@ type LogicClient struct {
func (h *LogicClient) KickPerson(a int) error {
fmt.Println("检测到踢人请求", a)
service.KickPlayer(uint32(a))
socket.KickPlayer(uint32(a))
return nil
}
func (h *LogicClient) QuitSelf(a int) error {
@@ -50,9 +50,9 @@ func (h *LogicClient) QuitSelf(a int) error {
for {
//entity.ConutPlayer()
fmt.Println("当前在线人数", socket.ConutPlayer())
fmt.Println("当前在线人数", service.ConutPlayer())
if socket.ConutPlayer() <= 0 {
if service.ConutPlayer() <= 0 {
//执行退出逻辑
os.Exit(1)
}
@@ -107,7 +107,7 @@ func init() { //默认初始化扫描
}
glog.Debug(context.Background(), "注册方法", func_cmd, method.Name)
// fmt.Println(methodValue.Interface().(func(gnet.Conn, handler.TomeeHeader)))
// fmt.Println(methodValue.Interface().(func(gnet.Conn, service.TomeeHeader)))
_, ok := cool.CmdCache.LoadOrStore(func_cmd, methodValue) //TODO 待实现对不同用户初始化方法以取消全局cmdcache
if ok { //方法已存在init
@@ -136,7 +136,7 @@ func getcmd(t reflect.Type) []uint32 {
field := t.Field(i)
//fmt.Printf("- 字段名: %s\n", field.Name)
//fmt.Printf(" 类型: %v\n", field.Type)
if field.Type == reflect.TypeOf(handler.TomeeHeader{}) {
if field.Type == reflect.TypeOf(service.TomeeHeader{}) {
// fmt.Println(reflect.ValueOf(field))
return gconv.SliceUint32(strings.Split(field.Tag.Get("cmd"), "|"))
@@ -158,7 +158,7 @@ func getcmd(t reflect.Type) []uint32 {
}
// 遍历结构体方法并执行RECV_cmd
func Recv(c *socket.Conn, data handler.TomeeHeader) {
func Recv(c *service.Conn, data service.TomeeHeader) {
cmdlister, ok := cool.CmdCache.Load(data.CMD)
if !ok {
@@ -189,8 +189,8 @@ func Recv(c *socket.Conn, data handler.TomeeHeader) {
if nameField.IsValid() && nameField.CanSet() {
nameField.Set(reflect.ValueOf(data))
}
if cmdlister.Type().In(1) == reflect.TypeOf(&socket.Player{}) {
t := service.GetPlayer(c, data.UserID)
if cmdlister.Type().In(1) == reflect.TypeOf(&service.Player{}) {
t := socket.GetPlayer(c, data.UserID)
// fmt.Println(data.CMD, "接收 变量的地址 ", &t.Info, t.Info.UserID)
err := t.WaitForLoginWithCtx(context.Background())
if err != nil {