refactor(socket): 重构 socket 模块
- 移除 common/data/socket 目录下的大部分文件 - 新增 service 目录,将 Player 和 Conn 结构体移至该目录 - 更新 LogicClient 中的方法签名,使用 service 包的类型 - 重构 Controller 中的方法,适应新的 service 包结构
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user