错误信席:Put Fail, quantity:0
发布于 8 个月前 作者 shinjuwu 441 次浏览 来自 三方模块

11111.JPG 我使用了房间的模块写了一疙小游戏,再用改写过的机器人下去测试, 我机器人设置500人,跑了一断时间以后就会连续报图上的错误, 看起来是wsqueue已经满了,我就把New的地方改成 queue.NewQueue(1024) 还是没办法解决这问题, 不知道这个问提我要朝哪个方向解决?

3 回复

Put Fail 能确定是queue.NewQueue(1024)满了这个问题吗? 如果是queue.NewQueue满了这个问题的话是不是你clientId发送频率太高了?每一帧所有请求数都超过1024个消息了,那你一个房间有多少玩家再同时玩?每一个玩家每秒发送多少个消息?

我把这游戏改成六人一桌的游戏,固定每一秒会向Server端同步一次信媳,Server每100ms Update一次,以这样的信习量来看是不可能造成Queue满了的问题,后来发现只要把Module注册的方法从RegisterGo改成Register之后,就可以避免这问题,后来啄磨的一阵,觉得应该是wqueue().Put()方法因位高并发产生的竞争问题,导致Put() message的时后报失败。

RegisterGo改成Register 是有效的解决方案

回到顶部