2016-08-19 6 views
1

Ich benutze Kryonet für mein LibGDX-Projekt. Jedes Mal, wenn ein Client eine Verbindung mit dem Server herstellt, wird eine neue Verbindungs-ID erstellt. Z.B. Client 1: ID 1. Client 2: ID 2.Kryonet Verbindung ID Limit?

Wenn ein Client erneut eine Verbindung herstellt, wird der Zähler fortgesetzt, ältere IDs werden nicht erneut verwendet. Z.B. Client 1 verbindet erneut: ID 3.

Setzt Kryonet den Zähler nach einer Weile zurück? Oder gibt es eine Möglichkeit, den Zähler zurückzusetzen? Ich mache mir Sorgen um Probleme, nachdem mein Server für eine Weile läuft.

+0

Wie lange reden wir noch? Unter der Annahme einer 32-Bit-Verbindungs-ID und 100 Anfragen/s, sehen Sie sich über ein Jahr Betriebszeit vor jeder Art von Problem an! – Eric

Antwort

0

Ich habe mein eigenes Problem gelöst, aber ich werde es hier lassen, wenn jemand interessiert ist.

Ich war auf der Suche durch die Quelle von Kryonet und fanden diese:

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

Wenn dieser Wert den Maximalwert erreicht, dreht sie auf den Minimalwert. Ref: https://stackoverflow.com/a/5131206/4697327.

Ich denke, es wird nie ein Problem geben.

BEARBEITEN: Kryonet verwendet -1 als ID, wenn die Verbindung noch nie hergestellt wurde. Wenn die nextConnectionID einen Wert von maximal 32 Bit zählt, wird der Wert auf den Minimalwert zurückgesetzt und der Wert wird erneut auf 0 erhöht. An einem bestimmten Punkt wird -1 übergeben. Dies wird ein Problem für eine Verbindung sein. Ich habe noch kein Problem mit negativen IDs gefunden.

+0

Ich postete dies als ein Problem bei Kryonets github: https://github.com/EsotericSoftware/kryonet/issues/119 – kwantuM