【问题标题】:What does Kryonet send over each couple seconds?Kryonet 每几秒钟发送什么信息?
【发布时间】:2018-06-19 23:55:43
【问题描述】:

我注意到 Kryonet 大约每 5 秒向每个连接的成员发送/接收我没有注册的对象。它可能只是几个字节,即使对于几千名玩家来说,服务器负载也不会超过 1 kB/s,但我需要知道。

  • 这是为什么呢?
  • 这有多大?
  • 我可以停止它或减慢间隔吗?

我记得几年前我在摆弄 Kryonet 的一个观点时读过一些关于此的文章,但我再也找不到那篇文章了。

要明确的是,关于Listener 中的received 覆盖方法。一旦客户端加入服务器,我就会开始接收我没有注册的数据包。服务器发送和接收的数据包数量随着连接到服务器的客户端数量线性增加。

【问题讨论】:

  • 可能是某种 ping。我自己永远看不到 KryoNet 的意义。

标签: java networking kryonet


【解决方案1】:

就像推荐中提到的 EJP 一样,它是某种形式的 ping 来保持连接打开。以下是为什么会发生这种行为的理论(免责声明:我还没有关于该主题的扩展知识)。

TCP 或 UDP 连接可以无限期保持打开状态,但如果客户端和服务器都没有通信,则无法知道客户端(或服务器)是否已断开连接。在this question 中,客户端和服务器之间的持续 ping 称为心跳。

据我所知,Kryonet 服务器会向客户端发送一个空对象,客户端应该回复。如果服务器在一定时间内(我相信默认为 5 秒)没有收到应答,则连接将关闭并通知其他客户端。

【讨论】:

    猜你喜欢
    • 2021-11-06
    • 1970-01-01
    • 2019-09-15
    • 1970-01-01
    • 1970-01-01
    • 2014-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多