배터리에는 게임용 네트워킹 상자가 포함되어 있습니다.
[dependencies]
netstack = "0.3.0"
문서화(작업 진행 중)
제안 사항이 있거나 기능을 놓치거나 연락하고 싶다면 이 저장소에서 이슈를 열거나 트위터에서 저에게 연락하세요.
프로덕션에서 netstack을 효과적으로 사용하려면 초기 비밀 및 연결 토큰을 교환하기 위한 보안 채널이 필요합니다. 이를 위해 https를 사용하는 것이 좋지만 선택은 귀하에게 달려 있습니다. 예제에서는 http 서버를 사용합니다.
(haust는 구현됨을 의미하고, ?는 계획 중이거나 개발 중임을 의미합니다)
io_uring
, IOCP
또는 epoll
기반으로 하는 전송은 현재 범위를 벗어납니다.
이 크레이트는 승인 및 시간 초과를 기반으로 한 재전송을 구현하지 않습니다. 게임에는 안정성을 달성하는 다른 방법이 있습니다. 대부분 시간 제한 기반 메커니즘이 손실된 패킷을 감지할 때 정보가 이미 오래되었기 때문입니다.
예를 들어 FPS는 모든 패킷과 함께 마지막 두 프레임에 대한 플레이어 입력을 보내므로 하나가 유선에서 손실되면 다음 패킷이 공백을 채웁니다.
서버에서 클라이언트로의 게임 상태 압축은 일반적으로 클라이언트가 확인한 마지막 패킷을 기반으로 합니다. 이를 위해 MessageAcknowledged
이벤트와 send
에서 반환된 시퀀스 번호를 사용하세요.
클라이언트/서버 예제는 예제 디렉터리를 참조하고 다음 명령을 사용하여 실행하세요.
cargo run -p server
cargo run -p client
Netstack에는 구조체(및 이후 열거형)에 대한 작업 중인 파생 매크로가 함께 제공됩니다.
# [ derive ( Debug , Serialize , Deserialize ) ]
pub struct Greeting {
pub id : u32 ,
pub to : String ,
pub message : String ,
}
MIT