Closed ammonzhang closed 7 months ago
没发现问题,可以尝试运行一下相关 demo。
// 启动模拟客户端
new ClientRunOne()
.setInputCommandRegions(inputCommandRegions)
// 开启心跳,每 3 秒向服务器发送一次心跳消息
.idle(3)
.startup();
OK,找到问题了。是前端页面周期发送的问题,setInterval的周期精度坑问题,一定时间会内存泄漏,长时间不发送。谢谢
iogame 21 版本 按照教学例子 启用了 心跳机制,设置了 客户端每1秒 向 iogame 对外服 发送 cmdCode:0 的心跳包, 对外服的 idleProcessSetting .setIdleTime 设置为3秒。刚启动后,心跳可以正常使用,如果停止客户端的发送心跳包,则 3秒后,正常关闭连接。但如果持续发送心跳包大约1分钟左右,有时三分钟,时间不定,callback回调方法里 就会出现各种读写超时,关闭连接。换各种网络依然如此调试还发现,如果我发送了一个cmdcode:1的 业务逻辑数据,则这个1分钟左右的关闭链接 时间 就会延长关闭时间。如果多开几个前端页面的客户端发送心跳包,则超时情况会更快的出现,感觉占用通道堵塞一样。这个是和什么有关系呢?