2016-08-19 22 views
1

私はLibGDXプロジェクトにkryonetを使用しています。クライアントがサーバーに接続するたびに、新しい接続IDが作成されます。例えば。クライアント1:ID 1.クライアント2:ID 2.Kryonet接続ID制限?

クライアントが再接続すると、カウンタは続行しますが、古いIDを再利用していないようです。例えば。クライアント1は再接続します:ID 3

しばらくしてkryonetはカウンタをリセットしますか?または、カウンターをリセットする方法はありますか?私はサーバが少し動いた後に問題にぶつかることに心配しています。

+0

少しの間、私たちは話していますか? 32ビットの接続IDと100要求/秒を想定すると、何らかの問題が発生する前に1年間以上の稼働時間を見ているでしょう。 – Eric

答えて

0

私は自分の問題を解決しましたが、誰かが興味があればここに残します。

IはKryonetのソースを通して見ると、このことが分かった。

int id = nextConnectionID++; 
if (nextConnectionID == -1) nextConnectionID = 1; 

この値が最大値に達すると、それが最小値に反転。 Ref:https://stackoverflow.com/a/5131206/4697327

私は問題は決してないと思います。

EDIT:Kryonetは、Connectionが一度も作成されていないときにIDとして-1を使用します。 nextConnectionIDが最大32ビットまでカウントした場合、それを最小値にフリップして再び0までカウントします。何らかの点で-1を返します。これは1つの接続で問題になります。 私はまだ否定的なIDの問題を発見していません。

+0

私はこの問題をKryonets githubに投稿しました:https://github.com/EsotericSoftware/kryonet/issues/119 – kwantuM