Ce référentiel permet l'utilisation de netcode.io via des extensions de navigateur, avant son adoption dans les navigateurs. netcode.io permet l'utilisation sécurisée d'UDP dans les navigateurs Web dans le but de prendre en charge les jeux HTML5 multijoueurs. Plus d’informations sur netcode.io peuvent être trouvées ici.
netcode.io est pris en charge dans les navigateurs suivants via des extensions :
La prise en charge des appareils mobiles est fondamentalement impossible jusqu'à ce que la prise en charge de netcode.io apparaisse nativement dans les navigateurs, car les plates-formes mobiles ne prennent pas en charge les extensions ou la messagerie native.
Pour que cela fonctionne, cela nécessite l'installation à la fois d'une extension de navigateur et d'une application d'assistance native qui effectue la communication netcode.io proprement dite. L'extension utilise les API de messagerie natives fournies dans les navigateurs afin de rendre netcode.io disponible via l'assistant.
Pour essayer cela dans votre navigateur, créez d'abord l'assistant netcode.io.host :
go get github.com/wirepair/netcodego build - pour le système d'exploitation actuelenv GOOS=windows GOARCH=amd64 go build - pour construire pour Windows (style Linux pour définir les variables d'environnement)env GOOS=linux GOARCH=amd64 go build - pour construire pour Linux (style Linux pour définir les variables d'environnement)env GOOS=darwin GOARCH=amd64 go build - pour construire pour Mac (style Linux pour définir les variables d'environnement) ./netcode.io.host
Cela devrait fonctionner sans erreur et s'installer en tant qu'extension de messagerie native.
Une fois cela fait, ajoutez le répertoire browserwebext en tant qu'extension décompressée.
L'API mise à la disposition des clients Javascript sous le nom window.netcode . Vous pouvez vérifier la disponibilité de netcode.io en utilisant le modèle conventionnel if (window.netcode) { ... } .
window.netcode fournit une fonction : createClient(callback) :
Crée un nouveau client netcode.io qui peut être utilisé pour une communication UDP sécurisée à l'aide du protocole netcode.io. Le rappel est de la forme callback(err, client) . Si err est défini, une erreur s'est produite lors de la création du client (et client sera nul). Sinon, client est défini et err est nulle. Le client renvoyé est une instance de Client .
protocol doit être ipv4 ou ipv6 et détermine le type d'adresse de serveur auquel vous pouvez vous connecter.
Paramètres :
protocol : Soit ipv4 , soit ipv6 .callback : Un rappel sous la forme callback(err, client) où err est soit null ou une instance de Error , et client est soit null ou une instance de Client . Vérifie si l'assistant netcode.io a été installé par l'utilisateur. Le rappel est de la forme callback(err, isPresent) , où err est soit null , soit une instance de Error . S'il n'y a pas d'erreur, isPresent est un booléen indiquant si l'assistant natif a été installé.
Si l'assistant netcode.io n'a pas été installé, vous devez diriger l'utilisateur vers https://github.com/RedpointGames/netcode.io-browser/releases/tag/latest où l'assistant netcode.io peut être facilement installé dans un quelques clics.
Paramètres :
callback : Un rappel sous la forme callback(err, isPresent) où err est soit null , soit une instance de Error , et isPresent est soit null , soit un booléen. Définit le taux de ticks du client netcode.io, exprimé en nombre de ticks par seconde pour la réception et l'envoi de paquets. Le taux de tick pour les clients est par défaut de 60 ; c'est-à-dire 60 fois par seconde.
Paramètres :
tickRate : Un entier égal ou supérieur à 1 .callback : Un rappel sous la forme callback(err) où err est soit null , soit une instance de Error . Se connecte à un serveur netcode.io à l'aide du jeton spécifié. Le token doit être une instance de Uint8Array et représenter un jeton netcode.io reçu d'un serveur d'authentification.
Vous ne pouvez pas utiliser netcode.io pour envoyer des paquets UDP à des adresses IP arbitraires ; à la place, vous devez disposer d'un serveur d'authentification qui utilise la bibliothèque netcode.io (ou une implémentation compatible) qui peut générer et signer des jetons avec une liste d'adresses IP de serveur de jeu et une clé privée partagée entre votre serveur d'authentification et les serveurs de jeu.
Dans les scénarios les plus courants, votre serveur d'authentification fournira le jeton dans le cadre d'une requête AJAX. Si vous utilisez un système de compte utilisateur, vous fournirez des jetons une fois que l'utilisateur se connectera à votre jeu, le jeton indiquant à quel serveur le client est autorisé à se connecter.
Paramètres :
token : Une instance Uint8Array qui contient les données du jeton.callback : Un rappel sous la forme callback(err) où err est soit null , soit une instance de Error . Envoie un paquet au serveur connecté avec packetBuffer comme données. packetBuffer doit être une instance de Uint8Array .
Paramètres :
token : Une instance Uint8Array qui contient les données du paquet à envoyer.callback : Un rappel sous la forme callback(err) où err est soit null , soit une instance de Error . Renvoie l'état actuel du client sous forme de chaîne. L'état renvoyé est l'un des suivants : connected , connectionDenied , connectionRequestTimeout , connectionResponseTimeout , connectionTimedOut , connectTokenExpired , disconnected , invalidConnectToken , sendingConnectionRequest , sendingConnectionResponse ou destroyed .
Paramètres :
callback : Un rappel sous la forme callback(err, state) où err est soit null , soit une instance de Error . state est soit null (en cas d'erreur), soit l'un des états répertoriés ci-dessus.Détruit le client, le déconnecte du serveur et nettoie toutes les ressources associées. Une fois qu'un client est détruit, il ne peut plus être réutilisé.
Paramètres :
callback : Un rappel sous la forme callback(err) où err est soit null , soit une instance de Error . Ajoute un écouteur d'événement au client. Actuellement, le seul type pris en charge est receive , qui est déclenché lorsque le client reçoit un paquet du serveur.
Pour receive le rappel est de la forme callback(clientId, buffer) où clientId est l'identifiant client émis à l'origine par le serveur d'authentification et buffer est le paquet reçu en tant qu'instance de Uint8Array .
Paramètres :
type : un des types pris en charge répertoriés ci-dessus.callback : Un rappel dont la forme diffère en fonction type . Ce code d'extension hôte est fourni sous la licence MIT.
Les principaux objectifs de ce projet sont actuellement les suivants :
Toutes les demandes d'extraction doivent être mises à disposition sous une licence MIT.