Caja de red para juegos con pilas incluidas.
[dependencies]
netstack = "0.3.0"
Documentación (trabajo en progreso)
Si tiene sugerencias, pierde funciones o simplemente quiere ponerse en contacto, puede abrir problemas en este repositorio o comunicarse conmigo en Twitter.
Para utilizar netstack de forma eficaz en producción, necesita un canal seguro para intercambiar un secreto inicial y un token de conexión. Se recomienda utilizar https para esto, pero depende de usted. Los ejemplos utilizan un servidor http.
(☑️ significa implementado, ? significa planificado o en desarrollo)
Los transportes basados en io_uring
, IOCP
o epoll
están fuera de alcance en este momento.
Esta caja no implementa la retransmisión basada en confirmaciones y tiempos de espera. Los juegos tienen otras formas de lograr confiabilidad, principalmente porque la información ya está desactualizada cuando cualquier mecanismo basado en tiempo de espera detecta el paquete perdido.
Los FPS, por ejemplo, envían la entrada del reproductor para los últimos fotogramas con cada paquete, de modo que cuando uno se pierde en el cable, el siguiente paquete llena el espacio.
La compresión del estado del juego desde el servidor al cliente generalmente se basa en el último paquete reconocido por el cliente. Utilice el evento MessageAcknowledged
y el número de secuencia devuelto por send
para esto.
Consulte el directorio de ejemplos para ver un ejemplo de cliente/servidor, use los comandos para ejecutarlos:
cargo run -p server
cargo run -p client
Netstack viene con una macro de derivación en proceso para estructuras (y enumeraciones posteriores).
# [ derive ( Debug , Serialize , Deserialize ) ]
pub struct Greeting {
pub id : u32 ,
pub to : String ,
pub message : String ,
}
MIT