Maison >interface Web >Questions et réponses frontales >Quelle est la différence entre nodejs et websocket
Différence : 1. nodejs est un environnement d'exécution JS, tandis que WebSocket est un protocole de communication ; 2. nodejs est utilisé pour créer facilement des applications réseau avec une réponse rapide et une expansion facile, tandis que WebSocket peut établir la connexion entre le client et le serveur de données. l'échange devient plus simple, permettant au serveur de transmettre activement les données au client.
L'environnement d'exploitation de ce tutoriel : système windows7, nodejs version 12.19.0, ordinateur DELL G3.
Qu'est-ce que nodejs
Node est un environnement d'exécution JavaScript basé sur le moteur Chrome V8, une plate-forme de développement qui permet à JavaScript de s'exécuter sur le serveur et est utilisée pour créer facilement des applications réseau avec une vitesse de réponse rapide et facile expansion. Node utilise un modèle d'E/S non bloquant et piloté par événements pour être léger et efficace, ce qui le rend idéal pour exécuter des applications en temps réel gourmandes en données sur des appareils distribués.
Node adopte une architecture appelée « boucle d'événements », permettant d'écrire facilement et en toute sécurité des serveurs hautement évolutifs. Il existe diverses techniques pour améliorer les performances du serveur. Node a choisi une architecture capable à la fois d'améliorer les performances et de réduire la complexité du développement. Il s'agit d'une fonctionnalité très importante. La programmation simultanée est souvent complexe et pleine de mines terrestres. Node les contourne mais offre toujours d’excellentes performances.
Node utilise une série de bibliothèques « non bloquantes » pour prendre en charge la boucle d'événements. Essentiellement, il fournit des interfaces pour des ressources telles que les systèmes de fichiers et les bases de données. Lors de l'envoi d'une requête au système de fichiers, il n'est pas nécessaire d'attendre le disque dur (pour adresser et récupérer le fichier). L'interface non bloquante informera Node lorsque le disque dur sera prêt. Ce modèle simplifie l'accès aux ressources lentes de manière évolutive, intuitive et facile à comprendre. Surtout pour les utilisateurs familiers avec les événements DOM tels que onmouseover et onclick, ils se sentiront familiers.
Bien que laisser Javascript s'exécuter côté serveur ne soit pas une fonctionnalité unique de Node, c'est l'une de ses fonctionnalités puissantes. Nous devons admettre que l'environnement du navigateur limite notre liberté de choisir les langages de programmation. Tout désir de partager du code entre des serveurs et des applications clientes de navigateur de plus en plus complexes ne peut être réalisé que via Javascript. Bien qu'il existe d'autres plates-formes prenant en charge Javascript côté serveur, Node s'est développé rapidement et est devenu la plate-forme de facto en raison des caractéristiques ci-dessus.
15 Scénarios d'application Nodejs
Nous avons une compréhension préliminaire de Nodejs, jetons un coup d'œil aux scénarios d'application de Nodejs.
1 Développement Web : Express + EJS + Mongoose/MySQL
express est un framework d'application Web Nodejs léger et flexible qui peut créer rapidement des sites Web. Le framework Express est construit sur le module Http intégré de Nodejs et reconditionne le module Http pour implémenter la fonction de traitement des requêtes Web.
ejs est un moteur de modèle Javascript intégré qui génère du code HTML par compilation.
mongoose est l'outil de modèle objet de MongoDB Grâce au framework Mongoose, vous pouvez accéder à MongoDB.
mysql est une API de communication qui se connecte à la base de données MySQL et peut effectuer des opérations pour accéder à MySQL.
Habituellement, l'utilisation de Nodejs pour le développement web nécessite l'utilisation de trois frameworks, tout comme SSH en Java.
2 Développement REST : Restify
restify est un framework d'application REST basé sur Nodejs, prenant en charge le serveur et le client. Restify se concentre davantage sur les services REST que sur Express, en supprimant le modèle, le rendu et d'autres fonctions dans Express. En même temps, il renforce l'utilisation du protocole REST, la prise en charge des versions et la gestion des exceptions HTTP.
3 Web Chat Room (IM) : Express + http://Socket.io
socket.io est un progiciel basé sur l'architecture Nodejs et prend en charge le protocole websocket pour une communication en temps réel. Socket.io fournit un package complet pour créer des applications en temps réel sur les navigateurs. Socket.io est entièrement implémenté par JavaScript.
4 Web crawler : Cheerio/Request
cheerio est une boîte à outils spécialement personnalisée pour les serveurs, rapide, flexible et encapsulant les fonctions principales de jQuery. Cheerio inclut un sous-ensemble du noyau jQuery, supprimant toutes les incohérences DOM et incompatibilités de navigateur de la bibliothèque jQuery, révélant ainsi son API vraiment élégante. Cheerio fonctionne sur un modèle DOM très simple et cohérent, ce qui rend l'analyse, le fonctionnement et le rendu incroyablement efficaces. Les tests de base de bout en bout montrent que Cheerio est environ huit fois (8x) plus rapide que JSDOM. Cheerio encapsule l'analyseur HTML compatible @FB55 et peut analyser presque tous les documents HTML et XML.
5 Web Blog : Hexo
Hexo est un framework de blog simple, léger et statique basé sur Node. Grâce à Hexo, nous pouvons créer rapidement notre propre blog, qui peut être complété avec seulement quelques commandes.
Une fois publié, Hexo peut être déployé sur votre propre serveur Node ou sur github. Pour les utilisateurs individuels, le déploiement sur GitHub présente de nombreux avantages. Il permet non seulement d'économiser le coût des serveurs, mais également de réduire les problèmes liés au fonctionnement et à la maintenance du système (gestion du système, sauvegarde, réseau). Les sites personnels basés sur github commencent donc à devenir populaires...
6 Forum Web : nodeclub
Node Club est un nouveau logiciel communautaire développé avec Node.js et MongoDB. Il possède une interface élégante, des fonctions riches et une petite taille. et la vitesse. Il est déjà utilisé dans la communauté technologique chinoise Node .js, mais vous pouvez l'utiliser pour créer votre propre communauté.
7 Diaporama Web : Cleaver
Cleaver peut générer des présentations basées sur Markdown. Si vous disposez déjà d'un document Markdown, vous pouvez créer un diaporama en 30 secondes. Cleaver est un outil pour les pirates.
8 Plateforme de gestion de packages front-end : bower.js
Bower est un outil de gestion de packages lancé par Twitter Basé sur l'idée modulaire de nodejs, les fonctions sont dispersées en différents modules afin qu'il y ait une connexion entre les modules. Via Bower pour gérer cette connexion entre les modules.
9 Authentification OAuth : Passport
Le projet Passport est un middleware d'authentification basé sur Nodejs. Le but de Passport est uniquement pour "l'authentification de connexion". Par conséquent, le code est propre, facile à maintenir et peut être facilement intégré à d'autres applications. Les applications Web disposent généralement de deux formes d'authentification de connexion : la connexion par authentification par nom d'utilisateur et mot de passe et la connexion par authentification OAuth. Passport peut configurer différents mécanismes d'authentification en fonction des caractéristiques de l'application. Cet article présentera la connexion d'authentification du nom d'utilisateur et du mot de passe.
10 Outil de tâches planifiées : plus tard
Later est une bibliothèque d'outils basée sur Nodejs, qui exécute les tâches planifiées de la manière la plus simple. Plus tard, il peut s'exécuter dans Node et dans le navigateur.
11 Outils d'environnement de navigateur : browserify
L'émergence de Browserify permet aux modules Nodejs de s'exécuter dans le navigateur, d'utiliser le format de syntaxe require() pour organiser le code frontal et charger les modules npm. Dans le navigateur, le code compilé en appelant Browserify est également écrit dans la balise