netcode est un protocole client/serveur sécurisé construit sur UDP.
Il est destiné à être utilisé par les jeux multijoueurs en temps réel, qui nécessitent un protocole orienté connexion mais sans blocage en tête de ligne de TCP.
netcode a les fonctionnalités suivantes :
Le netcode est stable et prêt pour la production.
Commencez par générer une clé privée aléatoire de 32 octets. Ne partagez votre clé privée avec personne .
Surtout, n’incluez pas votre clé privée dans l’exécutable de votre client !
Voici une clé privée de test :
static uint8_t private_key [ NETCODE_KEY_BYTES ] = { 0x60 , 0x6a , 0xbe , 0x6e , 0xc9 , 0x19 , 0x10 , 0xea ,
0x9a , 0x65 , 0x62 , 0xf6 , 0x6f , 0x2b , 0x30 , 0xe4 ,
0x43 , 0x71 , 0xd6 , 0x2c , 0xd1 , 0x99 , 0x27 , 0x26 ,
0x6b , 0x3c , 0x60 , 0xf4 , 0xb7 , 0x15 , 0xab , 0xa1 };
Créez un serveur avec la clé privée :
char * server_address = "127.0.0.1:40000" ;
struct netcode_server_config_t server_config ;
netcode_default_server_config ( & server_config );
memcpy ( & server_config . private_key , private_key , NETCODE_KEY_BYTES );
struct netcode_server_t * server = netcode_server_create ( server_address , & server_config , time );
if ( ! server )
{
printf ( "error: failed to create servern" );
return 1 ;
}
Démarrez ensuite le serveur avec le nombre d'emplacements clients souhaité :
netcode_server_start ( server , 16 );
Pour connecter un client, votre client doit accéder à une API REST sur votre backend qui renvoie un jeton de connexion .
L'utilisation d'un jeton de connexion sécurise votre serveur afin que seuls les clients autorisés avec votre backend puissent se connecter.
netcode_client_connect ( client , connect_token );
Une fois que le client se connecte au serveur, il se voit attribuer un index client et peut échanger des paquets cryptés et signés avec le serveur.
Pour plus de détails, veuillez consulter client.c et server.c
Ce référentiel contient l'implémentation du netcode en C.
D'autres implémentations de netcode incluent :
Si vous souhaitez créer votre propre implémentation de netcode, veuillez lire la norme netcode 1.02.
Ces gens sont géniaux :
Merci pour vos contributions à netcode!
L'auteur de cette bibliothèque est Glenn Fiedler.
D'autres bibliothèques open source du même auteur incluent : fiable, sérialiser et yojimbo.
Si vous trouvez ce logiciel utile, pensez à le sponsoriser. Merci!
Licence BSD à 3 clauses.