신뢰할 수 없고 속도가 제한된 클라이언트 연결을 대상으로 하는 고성능 RakNet 구현입니다. 엄격한 netty 스타일 서버 및 클라이언트 채널을 제공합니다.
이 구현에서는 Netty 채널을 사용하여 빠르고 효과적인 RakNet 서버를 제공하고, 전송 프로토콜의 전체 기능 세트를 제공하는 동시에 플러그인이나 사용자 정의 동작을 확장할 수 있는 공간을 제공합니다.
재활용 가능한 물건:
많이 사용되는 물건은 재활용됩니다.
GC 압력을 감소시킵니다.
Netty 누출 감지 기능을 사용하여 계측되었습니다.
엄격한 Netty 패턴:
Bootstrap 및 ServerBootstrap 패턴을 사용합니다.
채널 쓰기 가능성을 사용하여 배압 신호를 보냅니다.
채널 구성을 위해 Netty ChannelOptions를 사용합니다.
일반적인 바인딩 및 연결 패턴을 따릅니다.
write , connect 및 기타에 대한 정확한 약속 응답.
0-복사본 버퍼 상호 작용:
전체적으로 버퍼 참조가 유지됩니다.
캡슐화 및 조각 모음에 사용되는 복합 버퍼입니다.
사용하기 쉬운 데이터 스트리밍 인터페이스:
원시 ByteBuf 쓰기 및 읽기에 사용되는 구성 가능한 패킷 ID입니다.
여러 패킷 ID 및 채널 구성을 허용하도록 확장 가능합니다.
Netty 형식에 맞춰 파이프라인은 필요에 따라 수정 및 확장될 수 있습니다.
고급 흐름 제어
클라이언트가 과부하되었을 때 버퍼 제한에 유용한 배압 신호입니다.
보류 중인 프레임 세트 제한은 높은 전송 속도 동안 불필요한 재전송을 줄입니다.
프레임 순서에 따라 우선순위를 재전송하여 오래된 패킷을 더 빠르게 얻을 수 있습니다.
자동 플러시 드라이버
플러시하지 않고 파이프라인에 쓰는 것이 좋습니다.
플러시 주기는 MTU를 최대한 활용하기 위해 아웃바운드 데이터를 압축합니다.
<종속성> <의존성> <groupId>network.ycc</groupId> <artifactId>raknet-서버</artifactId> <버전>1.1</버전> </의존성> <의존성> <groupId>network.ycc</groupId> <artifactId>raknet-클라이언트</artifactId> <버전>1.1</버전> </의존성> </종속성> <저장소> <id>waterdogpe-repo-릴리스</id> <name>WaterdogPE 저장소</name> <url>https://repo.waterdog.dev/releases</url> </저장소>
간단한 Hello World 테스트 케이스에서 좋은 예를 볼 수 있습니다.