


Comment implémenter la fonction de communication Websocket dans nodejs
Cet article présente principalement la méthode de nodejs combinée avec socket.io pour réaliser la fonction de communication websocket.Il analyse les étapes spécifiques et les compétences opérationnelles associées de nodejs combinées avec socket.io pour réaliser la communication websocket sous forme d'exemples. le besoin peut s'y référer
L'exemple de cet article décrit la méthode de nodejs combinée avec socket.io pour implémenter la fonction de communication websocket. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
Comme certains scénarios dans le projet nécessitent l'acquisition en temps réel de données d'arrière-plan, la méthode de requête http heartbeat a déjà été utilisée. Étant donné que Websocket présente une grande amélioration des performances par rapport à ce mode et peut améliorer les performances en temps réel, certaines recherches ont été effectuées sur Websocket. Ceci est implémenté à l'aide de nodejs+socket.io.
Atteindre l'objectif
Modifier la méthode de données d'arrière-plan de la demande de battement de cœur d'origine en une méthode push unifiée via une connexion de socket à l'arrière-plan. Les données d'arrière-plan sont écrites dans des fichiers ou redis par d'autres processus. Ce qui est implémenté ici est la manière de lire les fichiers.
Préparation
Installation de nodejs (omis)
Côté serveur
Créez un nouveau répertoire de projet, voici sockettest
Entrez dans le répertoire sockettest, installez le module express et le module socketio
npm install --save express@4.10.2 npm install --save socket.io
Créez un nouveau fichier package.json et écrivez le contenu suivant :
{ "name": "socket-test", "version": "0.0.1", "description": "my first socket.io app", "dependencies": { "express": "^4.10.2", "socket.io": "^1.7.2" } }
Créez un nouvel index.html, qui est utilisé comme page d'affichage d'accès par défaut, car il ne sera pas utilisé ici et le contenu est arbitraire
Créez un ; nouveau fichier Trends.js et écrivez-y le contenu :
var app = require('express')(); var http = require('http').Server(app); var io = require('socket.io')(http); var fs = require('fs'); #默认打开文件 app.get('/', function(req, res){ res.sendfile('index.html'); }); #用于存储所有socket以广播数据 var iolist = []; #定义socket on connection(连入)事件行为 io.on('connection', function(socket){ #将连入socket加入列表 iolist.push(socket); #记录index,在disconnect(断开连接)发生时将对应的socket删除 var sockex = iolist.indexOf(socket); #定义on disconnect事件行为 socket.on('disconnect', function(){ #将断开连接的socket从广播列表里删除 iolist.splice(sockex, 1); }); }); # 数据广播进程:每1秒钟广播一次 setInterval(function() { # 如果没有正在连接的socket,直接返回; if (iolist.length <= 0) return; var trends = fs.readFileSync('./data/trends.json','utf-8');#trends数据 var coins = fs.readFileSync('./data/coins.json','utf-8');#coins数据 #向所有socket连接发送数据 for (i in iolist) { # 向客户端发送trends数据 iolist[i].emit('trends', trends); # 向客户端发送coins数据 iolist[i].emit('coins', coins); } }, 1000); # 服务器侦听在sockettest.com的3000端口上 http.listen(3000, function(){ # 输出到标准输出 console.log('listening on sockettest.com:3000'); });
Créez un nouveau répertoire de données, et créez deux nouveaux fichiers Trends et Coins ci-dessous pour stocker les données à lire par le serveur socket.
Créez un nouveau répertoire public et créez-y un nouveau fichier index.html Le contenu du fichier est le suivant :
<!--引入必要的js文件--> <script type="text/javascript" src="http://sockettest:3000/socket.io/socket.io.js"></script> <script type="text/javascript"> //新建socket var socket = io('http://sockettest.com:3000'); socketdata(socket); function socketdata() { #定义接收到coins类型数据时的行为 socket.on('coins', function(msg){ console.log(msg); } #定义接收到trends类型数据时的行为 socket.on('trends', function(msg){ console.log(msg); } } </script>
Déploiement du code<🎜. >
Tout à l'heure La raison pour laquelle deux fichiers index.html sont créés est d'utiliser facilement le service socket fourni par nodejs dans les projets Web existants. De cette façon, nous pouvons déployer public/index.html sur d'autres serveurs, tels que nginx ou tomcat, puis démarrer le serveur socket dans le répertoire racine pour fournir des services socket.Exécutez d'abord
node ./trends.js
http://hostname/public/index.html
Activez le mode développeur et vous pourrez voir dans la console que vous recevrez un socket push du serveur de nœuds chaque seconde. Nouvelles. En modifiant les deux fichiers dans le répertoire de données, vous pouvez voir que les données écrites dans les fichiers seront également transmises au client en temps réel. Ce qui précède est ce que j'ai compilé pour vous. J'espère que cela vous sera utile à l'avenir. Articles connexes :Comment utiliser cli dans vue pour reconstruire un échafaudage multipage
Réaliser un menu déroulant clic-through contenu dans la zone de saisie synchrone JS
Réaliser la liaison entre la zone de saisie et la zone déroulante
Utilisation de l'erreur d'emballage parcel.js
Interprétation détaillée de la technologie de reconstruction de vue
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

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

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds





Node.js peut être utilisé comme framework backend car il offre des fonctionnalités telles que des performances élevées, l'évolutivité, la prise en charge multiplateforme, un écosystème riche et une facilité de développement.

Pour vous connecter à une base de données MySQL, vous devez suivre ces étapes : Installez le pilote mysql2. Utilisez mysql2.createConnection() pour créer un objet de connexion contenant l'adresse de l'hôte, le port, le nom d'utilisateur, le mot de passe et le nom de la base de données. Utilisez connection.query() pour effectuer des requêtes. Enfin, utilisez connection.end() pour mettre fin à la connexion.

Les variables globales suivantes existent dans Node.js : Objet global : global Module principal : processus, console, nécessiter Variables d'environnement d'exécution : __dirname, __filename, __line, __column Constantes : undefined, null, NaN, Infinity, -Infinity

Il existe deux fichiers liés à npm dans le répertoire d'installation de Node.js : npm et npm.cmd. Les différences sont les suivantes : différentes extensions : npm est un fichier exécutable et npm.cmd est un raccourci de fenêtre de commande. Utilisateurs Windows : npm.cmd peut être utilisé à partir de l'invite de commande, npm ne peut être exécuté qu'à partir de la ligne de commande. Compatibilité : npm.cmd est spécifique aux systèmes Windows, npm est disponible multiplateforme. Recommandations d'utilisation : les utilisateurs Windows utilisent npm.cmd, les autres systèmes d'exploitation utilisent npm.

Les principales différences entre Node.js et Java résident dans la conception et les fonctionnalités : Piloté par les événements ou piloté par les threads : Node.js est piloté par les événements et Java est piloté par les threads. Monothread ou multithread : Node.js utilise une boucle d'événements monothread et Java utilise une architecture multithread. Environnement d'exécution : Node.js s'exécute sur le moteur JavaScript V8, tandis que Java s'exécute sur la JVM. Syntaxe : Node.js utilise la syntaxe JavaScript, tandis que Java utilise la syntaxe Java. Objectif : Node.js convient aux tâches gourmandes en E/S, tandis que Java convient aux applications de grande entreprise.

Titre original : « Comment une souris sans fil devient-elle sans fil ? 》Les souris sans fil sont progressivement devenues un élément standard des ordinateurs de bureau d'aujourd'hui. Désormais, nous n'avons plus besoin de traîner de longs câbles. Mais comment fonctionne une souris sans fil ? Aujourd'hui, nous allons découvrir l'histoire du développement de la souris sans fil n°1. Saviez-vous que la souris sans fil a maintenant 40 ans ? En 1984, Logitech a développé la première souris sans fil au monde, mais cette souris sans fil utilisait l'infrarouge comme signal. On dit que le transporteur ressemble à l'image ci-dessous, mais il a ensuite échoué pour des raisons de performances. Ce n'est qu'en 1994, dix ans plus tard, que Logitech réussit enfin à développer une souris sans fil fonctionnant à 27 MHz. Cette fréquence de 27 MHz est également devenue la souris sans fil pendant longtemps.

Oui, Node.js est un langage de développement backend. Il est utilisé pour le développement back-end, notamment la gestion de la logique métier côté serveur, la gestion des connexions à la base de données et la fourniture d'API.

Étapes de déploiement de serveur pour un projet Node.js : Préparez l'environnement de déploiement : obtenez l'accès au serveur, installez Node.js, configurez un référentiel Git. Créez l'application : utilisez npm run build pour générer du code et des dépendances déployables. Téléchargez le code sur le serveur : via Git ou File Transfer Protocol. Installer les dépendances : connectez-vous en SSH au serveur et installez les dépendances de l'application à l'aide de npm install. Démarrez l'application : utilisez une commande telle que node index.js pour démarrer l'application ou utilisez un gestionnaire de processus tel que pm2. Configurer un proxy inverse (facultatif) : utilisez un proxy inverse tel que Nginx ou Apache pour acheminer le trafic vers votre application
