View on GitHub

ewo-next

Eternal War One in NodeJS (server) / React (client) / Socket.IO (interface)

Technologies Serveur

retour

Base

Le serveur est en TypeScript (surlangage de JavaScript), lancé par NodeJS.

Il est composé de deux parties :

Une partie serveur qui est chargé de servir des pages au clients et de faire une passerelle entre le client de jeu (qui accède à des données limités) et le serveur de gestion du jeu, qui contient l’intégralité de celui-ci en mémoire.

Le service de page est fait avec le framework ExpressJS, et la communication est faite en WebSocket avec Socket.IO.

Express

Le serveur ExpressJS va servir à distribuer les pages statiques ou extérieur au jeu, ainsi qu’a servir les ressources (images, feuille de styles, etc).

Le routeur est configuré de manière à ne pas générer d’erreur 404, mais de rediriger toutes les URL inconnues sur la page d’accueil, où l’application client s’occupera du routage.

La seule communication avec le jeu est faite pour la gestion du compte utilisateur : la création, la connection et l’édition de ces informations est est geré par ExpressJS.

De même, toute la partie administration du jeu et anti-triche sera managé par Express et pas par le client de jeu

Socket .IO

Au sein de socket.io, l’architecture est la suivante:

Evenements

Les événements envoyé par le clients sont les suivants:

Un événement contient généralement :

Un nom d’action peut être geré par plusieurs type d’événement (par exemple, “move” peut une action simple pour une actionBatch). Cependant, la résolution est contrôlé (si un client modifié envoie une action “move” en temps qu’événement update, l’action sera ignorée)

Liste (actuelle) des actions: