All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful
feat(player): 优化客户端数据处理机制 重构ClientData的消息处理流程,将OnEvent方法改为非阻塞的通道投递模式, 新增MsgChan用于异步消息传递,避免eventloop阻塞问题。 fix(fight): 修复宠物闪光属性过滤条件 在initplayer方法中增加color.Alpha不为0的判断条件,确保只有有效的 闪光属性才会被添加到宠物信息中。 refactor(socket): 调整服务器事件处理逻辑 移除未使用的Lockfree库依赖,注释掉不再需要的连接关闭资源释放代码, 调整事件处理的工作池提交逻辑。 feat(rpc): 新增Redis发布功能 为RPC_player添加SendPackCmd方法,通过Redis的publish命令实现 跨服数据传输功能。 ```
26 lines
442 B
Go
26 lines
442 B
Go
package player
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
)
|
|
|
|
// rpc,跨服匹配的玩家,只做数据的传输
|
|
type RPC_player struct {
|
|
baseplayer
|
|
//
|
|
serviceid uint32 //玩家所在的ID
|
|
}
|
|
|
|
func (f *RPC_player) SendPackCmd(cmd uint32, data any) {
|
|
|
|
conn, _ := g.Redis("cool").Conn(context.TODO())
|
|
|
|
defer conn.Close(context.TODO())
|
|
conn.Do(context.TODO(), "publish", "sun:send", cmd, data)
|
|
|
|
//fmt.Println("战斗结束")
|
|
|
|
}
|