我正在将 kryonet 用于我的 LibGDX 项目。每次客户端连接到服务器时,都会创建一个新的连接 ID。例如。客户端 1:ID 1。客户端 2:ID 2。
当客户端重新连接时,计数器继续,它似乎没有重用旧的 ID。例如。客户端 1 重新连接:ID 3。
kryonet 会在一段时间后重置计数器吗?或者有什么办法可以重置计数器吗?我担心我的服务器运行一段时间后会遇到问题。
最佳答案
我已经解决了我自己的问题,但如果有人感兴趣,我会将其留在这里。
我在查看 Kryonet 的源代码时发现了这个:
int id = nextConnectionID++;
if (nextConnectionID == -1) nextConnectionID = 1;
当该值达到最大值时,它会翻转到最小值。引用:https://stackoverflow.com/a/5131206/4697327 .
我想永远不会有问题。
编辑:当从未建立连接时,Kryonet 使用 -1 作为 ID。如果 nextConnectionID 计数到 32 位最大值,然后翻转到最小值并再次计数到 0,则它将在某个时刻传递 -1。对于一个连接来说这将是一个问题。
我还没有发现负 ID 的问题。
关于java - Kryonet 连接 ID 限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39047311/