Hochleistungsfähige RakNet-Implementierung, die auf unzuverlässige und ratenbegrenzte Client-Verbindungen abzielt. Es bietet strenge Server- und Clientkanäle im Netty-Stil.
Diese Implementierung nutzt Netty-Kanäle, um einen schnellen und effektiven RakNet-Server bereitzustellen, der den gesamten Funktionsumfang des Transportprotokolls bietet und gleichzeitig Raum für Erweiterungen mit beliebigen Plugins oder benutzerdefiniertem Verhalten bietet.
Recycelbare Gegenstände:
Stark genutzte Gegenstände werden recycelt.
Reduziert den GC-Druck.
Ausgestattet mit Netty-Leckerkennung.
Strenge Netty-Muster:
Verwendet Bootstrap- und ServerBootstrap-Muster.
Signalisiert Gegendruck mithilfe der Kanalbeschreibbarkeit.
Verwendet Netty ChannelOptions für die Kanalkonfiguration.
Folgt den normalen Bindungs- und Verbindungsmustern .
Genaue Promise-Antworten für Write , Connect und andere.
0-Kopie-Puffer-Interaktionen:
Durchgehend beibehaltene Pufferreferenzen.
Zusammengesetzte Puffer, die zur Kapselung und Defragmentierung verwendet werden.
Benutzerfreundliche Daten-Streaming-Schnittstelle:
Konfigurierbare Paket-ID, die zum Schreiben und Lesen von Roh-ByteBuf verwendet wird.
Erweiterbar, um mehrere Paket-IDs und Kanalkonfigurationen zu ermöglichen.
Getreu der Netty-Form kann die Pipeline nach Bedarf geändert und erweitert werden.
Erweiterte Flusskontrolle
Gegendrucksignale sind nützlich zur Pufferbegrenzung, wenn der Client überlastet ist.
Ausstehende Frame-Set-Grenzwerte reduzieren unnötige erneute Sendungen bei hohen Übertragungsraten.
Senden Sie die Priorität basierend auf der Frame-Sequenz neu, damit Sie ältere Pakete schneller erhalten.
Automatisierter Spültreiber
Es wird empfohlen, ohne Flush in die Pipeline zu schreiben.
Flush-Zyklen verdichten ausgehende Daten für eine optimale MTU-Nutzung.
<Abhängigkeiten>
<Abhängigkeit>
<groupId>network.ycc</groupId>
<artifactId>raknet-server</artifactId>
<version>1.1</version>
</Abhängigkeit>
<Abhängigkeit>
<groupId>network.ycc</groupId>
<artifactId>raknet-client</artifactId>
<version>1.1</version>
</Abhängigkeit>
</Abhängigkeiten>
<Repository>
<id>waterdogpe-repo-releases</id>
<name>WaterdogPE-Repository</name>
<url>https://repo.waterdog.dev/releases</url>
</repository>Ein gutes Beispiel ist der einfache Hello World-Testfall.