Implémentation RakNet hautes performances ciblant les connexions clients peu fiables et à débit limité. Il fournit des canaux serveur et clients de style Netty strict.
Cette implémentation utilise les canaux Netty pour fournir un serveur RakNet rapide et efficace, offrant l'ensemble complet des fonctionnalités du protocole de transport, tout en offrant une marge d'extension avec des plugins ou un comportement personnalisé.
Objets recyclables :
Les objets très utilisés sont recyclés.
Réduit la pression du GC.
Instrumenté avec détection de fuite Netty.
Modèles Netty stricts :
Utilise le modèle Bootstrap et ServerBootstrap.
Signale la contre-pression en utilisant l'écriture du canal.
Utilise Netty ChannelOptions pour la configuration du canal.
Suit les modèles normaux de liaison et de connexion .
Réponses de promesse précises pour write , connect et autres.
Interactions de tampon à 0 copie :
Références de tampon conservées partout.
Tampons composites utilisés pour l'encapsulation et la défragmentation.
Interface de streaming de données facile à utiliser :
ID de paquet configurable utilisé pour l’écriture et la lecture brutes de ByteBuf.
Extensible pour permettre plusieurs configurations d'ID de paquet et de canal.
Fidèle à la forme de Netty, le pipeline peut être modifié et augmenté selon les besoins.
Contrôle de flux avancé
Signaux de contre-pression utiles pour limiter la mémoire tampon lorsque le client est surchargé.
Les limites de trames en attente réduisent les renvois inutiles lors de taux de transfert élevés.
Renvoyez la priorité en fonction de la séquence de trames afin de récupérer plus rapidement les anciens paquets.
Pilote de chasse d'eau automatisé
Il est recommandé d'écrire dans le pipeline sans vidage.
Les cycles de vidage condensent les données sortantes pour une meilleure utilisation du MTU.
<dépendances> <dépendance> <groupId>réseau.ycc</groupId> <artifactId>serveur raknet</artifactId> <version>1.1</version> </dépendance> <dépendance> <groupId>réseau.ycc</groupId> <artifactId>client-raknet</artifactId> <version>1.1</version> </dépendance> </dépendances> <dépôt> <id>waterdogpe-repo-releases</id> <name>Dépôt WaterdogPE</name> <url>https://repo.waterdog.dev/releases</url> </dépôt>
Un bon exemple peut être vu dans le cas de test simple Hello World.