Implementação RakNet de alto desempenho visando conexões de clientes não confiáveis e com taxa limitada. Ele fornece canais de cliente e servidor de estilo netty rigorosos.
Esta implementação usa canais Netty para fornecer um servidor RakNet rápido e eficaz, oferecendo o conjunto completo de recursos do protocolo de transporte, ao mesmo tempo que oferece espaço para extensão com quaisquer plug-ins ou comportamento personalizado.
Objetos recicláveis:
Objetos muito usados são reciclados.
Reduz a pressão do GC.
Instrumentado com detecção de vazamento Netty.
Padrões rígidos do Netty:
Usa o padrão Bootstrap e ServerBootstrap.
Sinaliza a contrapressão usando a capacidade de gravação do canal.
Usa Netty ChannelOptions para configuração de canal.
Segue os padrões normais de ligação e conexão .
Respostas de promessa precisas para write , connect e outros.
Interações de buffer de cópia 0:
Referências de buffer retidas por toda parte.
Buffers compostos usados para encapsulamento e desfragmentação.
Interface de streaming de dados fácil de usar:
ID de pacote configurável usado para gravação e leitura de ByteBuf bruto.
Extensível para permitir vários IDs de pacotes e configurações de canais.
Fiel ao formato Netty, o pipeline pode ser modificado e aumentado conforme necessário.
Controle de fluxo avançado
Sinais de contrapressão úteis para limitação de buffer quando o cliente está sobrecarregado.
Os limites de conjunto de quadros pendentes reduzem reenvios desnecessários durante altas taxas de transferência.
Reenvie a prioridade com base na sequência de quadros para obter pacotes mais antigos com mais rapidez.
Driver de descarga automatizado
Recomendado para gravar no pipeline sem liberação.
Os ciclos de descarga condensam os dados de saída para melhor uso do MTU.
<dependências> <dependência> <groupId>rede.ycc</groupId> <artifactId>servidor raknet</artifactId> <versão>1.1</versão> </dependency> <dependência> <groupId>rede.ycc</groupId> <artifactId>cliente raknet</artifactId> <versão>1.1</versão> </dependency> </dependências> <repositório> <id>waterdogpe-repo-releases</id> <name>Repositório WaterdogPE</name> <url>https://repo.waterdog.dev/releases</url> </repositório>
Um bom exemplo pode ser visto no simples caso de teste Hello World.