Heim >Web-Frontend >js-Tutorial >Erstellen Sie ein Instant-Messaging-System basierend auf socket.io und node.js_node.js

Erstellen Sie ein Instant-Messaging-System basierend auf socket.io und node.js_node.js

WBOY
WBOYOriginal
2016-05-16 16:40:401569Durchsuche

Erstellen Sie einen Websocket-Server mit socket.io und nodejs

socket.io kann nicht nur clientseitige Websocket-Dienste erstellen, sondern unterstützt auch serverseitige Websockets von nodejs.

Lassen Sie mich vorstellen, wie man NodeJS installiert und konfiguriert.

Gehen Sie zu http://nodejs.org/#download, um die MSI-Datei herunterzuladen. Klicken Sie zum Installieren weiter auf „Weiter“. Die endgültige Datei wird automatisch im Verzeichnis C:nodejs installiert.

Nach Abschluss der Installation werden die Umgebungsvariablen automatisch konfiguriert. Wenn keine automatische Konfiguration erfolgt, fügen Sie ;C:nodejs manuell zum Pfad hinzu.

Nach Abschluss der Installation muss npm für die Verwaltung von node.js-Modulen konfiguriert werden.

Die Installation von npm unter Windows erfordert die Installation von Git.

Öffnen Sie nach der Installation von Git Gitbush. Befolgen Sie diese Schritte:

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

Der erste Schritt besteht darin, npm ohne Aufforderung einzurichten. Der zweite Schritt besteht darin, npm von Github herunterzuladen. Der vierte Schritt besteht darin, npm in node.js zu installieren und mehrere Dateien und cmd-Dateien zu kopieren mode_modules-Dateien. Clip es in das nodejs-Verzeichnis.

Dadurch wird npm konfiguriert.

Wenn Sie Module installieren müssen, geben Sie npm install *** direkt ein.

Benutzer ohne npm oder Windows können Socket.io mit Github herunterladen und im Ordner node_modules ablegen. Informationen zur spezifischen Konfiguration finden Sie im Artikel: „Nodejs-Tutorial: Konfigurieren der Windows-Verzeichnisstruktur von Nodejs.exe“

nodejs-Installation socket.io

Verwenden Sie das Knoten-Plug-in, um das Paket zu verwalten, und führen Sie den folgenden Befehl aus, um socket.io erfolgreich zu installieren

npm install socket.io

Ein mit socket.io implementiertes Beispiel

Kundencode:

<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 kann lokal von https://github.com/LearnBoost/socket.io-client heruntergeladen und in daed4455a768fe53c9473b5fe642d60c Machine js-Bibliothek.

Der Server ist mit nodejs implementiert

server2.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); 

 }); 

}); 

Testergebnisse können normal auf dem Client angezeigt werden

Serverseitige Anzeigeergebnisse:

C:javaNodejs>node server2.js

Hinweis: Der Code muss sich im selben Verzeichnis wie npm_module befinden. Andernfalls kommt es zu einer Fehlermeldung, dass das socket.io-Modul nicht gefunden werden kann.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn