node.js est-il adapté au développement backend de jeux ? _node.js
Comment le serveur du site Web et le serveur de jeu sont-ils connectés ?
1. Il existe de nombreux types de jeux. Jetons d’abord un coup d’œil aux MMORPG.
Aussi simple soit-il, un serveur RPG ne peut éviter de gérer des interactions entre plusieurs personnes dans la même scène, chaque client doit recevoir des informations sur les opérations de tous les autres.
Deuxièmement, les opérations des utilisateurs sont très fréquentes et les serveurs généraux ont tendance à maintenir de longues connexions. De plus, ces liens interagissent fréquemment et il n'existe pas de stratégie de partitionnement persistante évidente, ce qui limite l'expansion horizontale du serveur. Le même scénario ne peut souvent être exécuté que sur une seule machine physique.
Troisièmement, les jeux clients n'osent généralement pas effectuer d'opérations logiques sur le client. Il est très courant que les utilisateurs le déchiffrent pour vous en quelques minutes, changent des pièces d'or et achètent deux pièces d'équipement. Par conséquent, ce serveur de carte doit vérifier les opérations de tous les joueurs sur la carte et calculer une série de logiques métier telles que l'IA des monstres et le taux d'abandon.
Nous pouvons constater qu'il existe des différences évidentes entre les serveurs de jeux traditionnels et les serveurs Web, avec des exigences commerciales uniques telles que des connexions longues, la multidiffusion, une logique métier complexe et des stratégies de partitionnement limitées.
2. Jetons un coup d'œil aux avantages de la concurrence pour les serveurs de jeux.
La concurrence est en fait un processus logique de programme et elle ne nécessite pas de support physique multicœur. Le sens général est de donner l’impression que plusieurs flux logiques indépendants s’exécutent en même temps. La concurrence au niveau du système d’exploitation est le modèle multi-processus multi-thread. Laissez le système d'exploitation gérer les interruptions d'horloge, le blocage des E/S et d'autres problèmes.
Pour le serveur, si la tâche passe la plupart de son temps sur io, le mécanisme de concurrence peut empêcher l'intégralité du service de carte d'être bloqué par l'accès io. Lorsqu'une tâche est bloquée, allouez des ressources informatiques disponibles à d'autres tâches. Dans ce cas, la simultanéité est bénéfique pour l’efficacité du serveur et le temps de réponse.
Pour les programmeurs, un flux logique indépendant signifie qu'ils peuvent effectuer leurs tâches dans un contexte fiable, simple et faiblement couplé.
Étant donné que la commutation logique du gestionnaire du système d'exploitation doit tomber à plusieurs reprises dans le noyau, certaines personnes pensent que cela est trop lent, elles créent donc des threads dans l'espace utilisateur et contrôlent plusieurs flux logiques au sein du processus. En raison des limitations des capacités de description du langage, il est trop difficile d'écrire et d'utiliser de telles choses en C/C. En conséquence, le sucre syntaxique coroutine en Erlang, Go et Lua est né.
Node.js contrôle essentiellement plusieurs flux logiques par lui-même, mais ce flux logique est distribué en fonction du statut et de la priorité des io. Dans l'implémentation actuelle, il essaie d'utiliser des io asynchrones non bloquants. Lorsqu'une seule tâche appelle io, je l'arrête et lorsque le signal d'achèvement io est envoyé, je la redémarre.
Notez ceci : chaque fois que j'exécute une tâche, je ne basculerai pas activement vers d'autres flux de programme jusqu'à ce qu'elle soit terminée ou qu'un appel io se produise. Ainsi, si cette tâche implique trop de calculs, tout le processus de cartographie sera ici bloqué.
Étant donné que node.js est asynchrone, vous devez constamment écrire des rappels pour surveiller le signal d'achèvement io. Le flux logique d'une seule tâche sera interrompu plusieurs fois. Lorsque la tâche devient assez complexe, il y a ce qu'on appelle l'enfer callbak, qui posera de gros problèmes au débogage et au développement.
3. Pour les raisons ci-dessus, je ne recommande pas d'utiliser node.js dans le développement de serveurs MMORPG non prototypes.
4. Les serveurs de jeux mobiles récemment apparus sont tout à fait adaptés à node.js, car les jeux mobiles sont limités aux problèmes de réseau Le serveur ne peut vérifier que les données clés et ne peut pas gérer les interactions entre plusieurs personnes. . Le côté serveur a été simplifié au point qu'il n'est pas différent d'un serveur Web, et la logique métier est également simple, il suffit de traiter les données puis de les conserver.

Les applications de JavaScript dans le monde réel incluent la programmation côté serveur, le développement des applications mobiles et le contrôle de l'Internet des objets: 1. La programmation côté serveur est réalisée via Node.js, adaptée au traitement de demande élevé simultané. 2. Le développement d'applications mobiles est effectué par le reactnatif et prend en charge le déploiement multiplateforme. 3. Utilisé pour le contrôle des périphériques IoT via la bibliothèque Johnny-Five, adapté à l'interaction matérielle.

J'ai construit une application SAAS multi-locataire fonctionnelle (une application EdTech) avec votre outil technologique quotidien et vous pouvez faire de même. Premièrement, qu'est-ce qu'une application SaaS multi-locataire? Les applications saas multi-locataires vous permettent de servir plusieurs clients à partir d'un chant

Cet article démontre l'intégration frontale avec un backend sécurisé par permis, construisant une application fonctionnelle EdTech SaaS en utilisant Next.js. Le frontend récupère les autorisations des utilisateurs pour contrôler la visibilité de l'interface utilisateur et garantit que les demandes d'API adhèrent à la base de rôles

JavaScript est le langage central du développement Web moderne et est largement utilisé pour sa diversité et sa flexibilité. 1) Développement frontal: construire des pages Web dynamiques et des applications à une seule page via les opérations DOM et les cadres modernes (tels que React, Vue.js, Angular). 2) Développement côté serveur: Node.js utilise un modèle d'E / S non bloquant pour gérer une concurrence élevée et des applications en temps réel. 3) Développement des applications mobiles et de bureau: le développement de la plate-forme multiplateuse est réalisé par réact noral et électron pour améliorer l'efficacité du développement.

Les dernières tendances de JavaScript incluent la montée en puissance de TypeScript, la popularité des frameworks et bibliothèques modernes et l'application de WebAssembly. Les prospects futurs couvrent des systèmes de type plus puissants, le développement du JavaScript côté serveur, l'expansion de l'intelligence artificielle et de l'apprentissage automatique, et le potentiel de l'informatique IoT et Edge.

JavaScript est la pierre angulaire du développement Web moderne, et ses principales fonctions incluent la programmation axée sur les événements, la génération de contenu dynamique et la programmation asynchrone. 1) La programmation axée sur les événements permet aux pages Web de changer dynamiquement en fonction des opérations utilisateur. 2) La génération de contenu dynamique permet d'ajuster le contenu de la page en fonction des conditions. 3) La programmation asynchrone garantit que l'interface utilisateur n'est pas bloquée. JavaScript est largement utilisé dans l'interaction Web, les applications à une page et le développement côté serveur, améliorant considérablement la flexibilité de l'expérience utilisateur et du développement multiplateforme.

Python est plus adapté à la science des données et à l'apprentissage automatique, tandis que JavaScript est plus adapté au développement frontal et complet. 1. Python est connu pour sa syntaxe concise et son écosystème de bibliothèque riche, et convient à l'analyse des données et au développement Web. 2. JavaScript est le cœur du développement frontal. Node.js prend en charge la programmation côté serveur et convient au développement complet.

JavaScript ne nécessite pas d'installation car il est déjà intégré à des navigateurs modernes. Vous n'avez besoin que d'un éditeur de texte et d'un navigateur pour commencer. 1) Dans l'environnement du navigateur, exécutez-le en intégrant le fichier HTML via des balises. 2) Dans l'environnement Node.js, après avoir téléchargé et installé Node.js, exécutez le fichier JavaScript via la ligne de commande.


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Télécharger la version Mac de l'éditeur Atom
L'éditeur open source le plus populaire

MantisBT
Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

ZendStudio 13.5.1 Mac
Puissant environnement de développement intégré PHP

Version crackée d'EditPlus en chinois
Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

Listes Sec
SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.