Maison >interface Web >js tutoriel >Construire un système de messagerie instantanée basé sur socket.io et node.js_node.js

Construire un système de messagerie instantanée basé sur socket.io et node.js_node.js

WBOY
WBOYoriginal
2016-05-16 16:40:401572parcourir

Créez un serveur websocket en utilisant socket.io et nodejs

socket.io peut non seulement créer des services Websocket côté client, mais prend également en charge les websockets côté serveur nodejs.

Permettez-moi de vous présenter comment installer et configurer nodejs.

Allez sur http://nodejs.org/#download pour télécharger le fichier msi. Continuez à cliquer sur suivant pour installer. Le fichier final sera automatiquement installé dans le répertoire C:nodejs.

Une fois l'installation terminée, les variables d'environnement seront automatiquement configurées. S'il n'y a pas de configuration automatique, ajoutez manuellement ;C:nodejs au chemin.

Une fois l'installation terminée, npm doit être configuré pour gérer les modules node.js.

L'installation de npm sous Windows nécessite l'installation de git.

Après avoir installé git, ouvrez gitbush. Suivez ces étapes :

git config --system http.sslcainfo /bin/curl-ca-bundle.crt

git clone --recursive git://github.com/isaacs/npm.git

cd npm

node cli.js install npm -gf

La première étape consiste à configurer sans aucune invite. La deuxième étape consiste à télécharger npm depuis github et il y aura des fichiers de téléchargement et une progression. La quatrième étape consiste à installer npm sur node.js et à copier plusieurs fichiers cmd et. fichiers mode_modules. Découpez-le dans le répertoire nodejs.

Cela configurera npm.

Si vous devez installer des modules, entrez directement npm install ***.

Ceux qui n'utilisent pas npm ou Windows peuvent utiliser github pour télécharger socket.io et le placer dans le dossier node_modules. Pour une configuration spécifique, veuillez vous référer à l'article : "Tutoriel Nodejs : Configuration de la structure de répertoire Windows de Nodejs.exe" <.>

installation de nodejs socket.io

Utilisez le plug-in de nœud pour gérer le package et exécutez la commande suivante pour installer avec succès socket.io

npm install socket.io

Un exemple implémenté à l'aide de socket.io

Code client :

<html> 

<head> 

  <title></title> 

  <script src="../js/socket.io.client.js"></script> 

  <script type="text/javascript"> 

    function doit() { 

      var socket = io.connect('http://localhost'); 

      socket.on('news', function (data) {//接收到服务器发送过来的名为'new'的数据 

        console.log(data.hello);//data为应服务器发送过来的数据。 

        socket.emit('my new event', { my:'new data' });//向服务器发送数据,实现双向数据传输 

      }); 

      socket.on('other', function (data) {//接收另一个名为'other'数据, 

        console.log(data.hello); 

        socket.emit('event1', { my:'other data' }); 

      }); 

    } 

  </script> 

</head> 

<body> 

<button id='btn' onclick="doit()">click me</button> 

</body> 

</html> 

socket.io.client.js peut être téléchargé localement depuis

https://github.com/LearnBoost/socket.io-client, et pointez vers lui dans adc1155061279776b3f669ae9a3b7ec8 Bibliothèque Machine js.

Le serveur est implémenté avec nodejs

serveur2.js

var http= require('http'), io= require('socket.io'), express= require('express'); 

var app = express.createServer(), io = io.listen(app); 

app.listen(80); 

io.sockets.on('connection', function (socket) { 

 socket.emit('news', { hello: 'world' });//监听,一旦客户端连接上,即发送数据,第一个参数'new'为数据名,第二个参数既为数据 

 socket.on('my other event', function (data) {//捕获客户端发送名为'my other event'的数据 

  console.log(data.my); 

 }); 

 socket.emit('other', { hello: 'other world' });//发送另一个数据 

 socket.on('evnet1', function (data) {//捕获另外一个数据 

  console.log(data.my); 

 }); 

}); 

Les résultats des tests peuvent être affichés normalement sur le client

Résultats d'affichage côté serveur :

C:javaNodejs>node server2.js

Remarque : le code doit être dans le même répertoire que npm_module. Sinon, il y aura une erreur indiquant que le module socket.io est introuvable.

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn