我注意到Kryonet每5秒发送/接收一个我没有注册到每个连接成员的对象。这可能只是几个字节,即使对于几千个玩家来说服务器的负载也不会超过1 kB / s,但我需要知道。
我记得当我几年前摆弄Kryonet的时候,我已经读过一些关于这个的东西,但我再也找不到那篇文章。
要清楚,请received
中的Listener
覆盖方法。我开始收到一个客户端加入服务器后我没有注册的数据包。服务器发送和接收的数据包数量随连接到服务器的客户端数量而线性增加。
答案 0 :(得分:0)
就像在推荐中提到的EJP一样,它是某种形式的ping来保持连接打开。以下是为什么会发生这种行为的理论(免责声明:我还没有关于这个主题的扩展知识)。
TCP或UDP连接可以无限期保持打开状态,但如果客户端和服务器都没有通信,则无法知道客户端(或服务器)是否已断开连接。客户端和服务器之间的持续ping操作在this question中称为心跳。
据我所知,Kryonet服务器会向客户端发送一个空对象,客户端应该回复。如果服务器在一段时间内没有收到答案(我相信默认情况下为5秒),则连接将被关闭,并且可以通知其他客户端。