Heim >Web-Frontend >js-Tutorial >Erstellen Sie ein Instant-Messaging-System basierend auf socket.io und node.js_node.js
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.