Cet exemple d'article Node.js crée un serveur de chat Web pour une communication instantanée pour votre référence. Le contenu spécifique est le suivant
1. Utilisez Nodejs-websocket
Nodejs-WebSocket est une bibliothèque backend qui implémente le protocole WebSocket écrit basé sur Node.js.
Connexion: https://github.com/sitegui/nodejs-websocket.
(1) Installation
Installer via NPM dans le répertoire du projet: NPM Installez Nodejs-WebSocket
(2) Créer un serveur
// introduire Nodejs-websocketvar ws = require ("nodejs-websocket"); // Appel CreateServer Méthode pour créer le serveur, et le Conn dans la fonction de rappel est une instance de la connexion var server = ws.create (fonction (Conn) {console.log ("nouvelle connexion"); // écoute l'événement texte, et l'événement texte est déclenché par la chaîne passée " + str);});2. Le client utilise WebSocket
Sur le client, vous devez instancier un objet WebSocket: ws = nouveau WebSocket ("ws: // localhost: 5000"); Le paramètre passé est ws: // + url, qui est le même que le préfixe du protocole HTTP http: //. Ensuite, vous pouvez utiliser certaines méthodes intégrées de WebSocket pour surveiller les événements et afficher les données.
Ici, nous présentons chaque événement d'écoute: ONOpen se déclenche lorsque le serveur et le client établissent une connexion; OnMessage se déclenche lorsque le client reçoit des données envoyées par le serveur; OnClose se déclenche lorsque le client et la connexion du serveur sont fermés; OnError se déclenche lorsque l'erreur de connexion se produit.
3. Utilisez WebSocket + Nodejs pour implémenter une salle de chat en ligne
(1) le code HTML et CSS omis
(2) Client JS:
oconnect.onclick = function () {ws = new WebSocket ('ws: // localhost: 5000'); ws.onopen = function () {oul.innerhtml + = "<li> Client connecté </li>"; } ws.onMessage = function (evt) {oul.innerhtml + = "<li>" + evt.data + "</li>"; } ws.Onclose = function () {oul.innerhtml + = "<li> Client déconnecté </li>"; }; ws.OnError = function (evt) {oul.innerhtml + = "<li>" + evt.data + "</li>"; }; }; OSEND.OnClick = function () {if (ws) {ws.Send (Oinput.Value); }} (3) côté serveur js: / * WebSocket prend en charge deux types de transmission de données: type de texte et type binaire, où les données binaires sont envoyées et lisent le modèle de flux * / var app = require ('http'). CreateServer (handler); // Pour simplifier le code, placez le code spécifique de la création de serveur dans la fonction de gestionnaire var ws = require ('nodejs-websocket'); var fs = require ('fs'); app.Listen (8888); Fonction Handler (req, res) {// __ dirname renvoie le répertoire actuel où se trouve le fichier. Appelez la méthode ReadFile pour la lecture de fichiers fs.readfile (__ dirname + '/ index.html', fonction (err, data) {if (err) {res.writeHead (500); return res.end ('error');} res.writehead (200); res.end (data);});} // les étapes ci-dessus renforcent avec succès l'interface correspondante html html l'interface sur une} 88888888 Une instance de la connexion correspondante var server = ws.CreateServer (fonction (Conn) {console.log ('new Connecton'); // Écoutez l'événement texte et déclenchez Conn.on ("texte", fonction (str) {chaque fois console.log ('connexion fermée');})}). écouter (5000); // Notez que l'auditeur ici est le port du serveur qui vient d'être ouvert. Le client envoie le message ici pour traiter la fonction Broadcast (Server, MSG) {//server.connections est un tableau contenant toutes les clients connectés.connections.ForEach (Fonction (Conn) {//connection.SendText La méthode peut envoyer le contenu spécifié à la clientJ'espère que tout le contenu est utile à l'apprentissage de tous, et j'espère que tout le monde soutiendra davantage Wulin.com.