В комплекте с батареями был сетевой ящик для игр.
[dependencies]
netstack = "0.3.0"
Документация (в разработке)
Если у вас есть предложения, вы пропустили функции или просто хотите связаться с нами, вы можете открыть проблемы в этом репозитории или связаться со мной в Твиттере.
Чтобы эффективно использовать netstack в производстве, вам необходим безопасный канал для обмена исходным секретом и токеном подключения. Для этого рекомендуется использовать https, но решать вам. В примерах используется http-сервер.
(☑️ означает реализовано, ? означает запланировано или находится в разработке)
Транспорты, основанные на 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 ,
}
Массачусетский технологический институт