Vielleicht hilft Ihnen das auch. Ich hatte einige Probleme damit, meinen Kopf um die Funktionsweise von socket.io zu wickeln, also versuchte ich, ein Beispiel so weit wie möglich zu reduzieren.
Ich habe dieses Beispiel aus dem hier veröffentlichten Beispiel angepasst: http://socket.io/get-started/chat/
Beginnen Sie zunächst in einem leeren Verzeichnis und erstellen Sie eine sehr einfache Datei mit dem Namen package.json . Fügen Sie Folgendes ein.
{
"dependencies": {}
}
Verwenden Sie als Nächstes in der Befehlszeile npm, um die für dieses Beispiel erforderlichen Abhängigkeiten zu installieren
$ npm install --save express socket.io
Dies kann abhängig von der Geschwindigkeit Ihrer Netzwerkverbindung / CPU / usw. einige Minuten dauern. Um zu überprüfen, ob alles wie geplant verlaufen ist, können Sie die Datei package.json erneut anzeigen .
$ cat package.json
{
"dependencies": {
"express": "~4.9.8",
"socket.io": "~1.1.0"
}
}
Erstellen Sie eine Datei mit dem Namen server.js. Dies ist offensichtlich unser Server, der vom Knoten ausgeführt wird. Fügen Sie den folgenden Code ein:
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.get('/', function(req, res){
//send the index.html file for all requests
res.sendFile(__dirname + '/index.html');
});
http.listen(3001, function(){
console.log('listening on *:3001');
});
//for testing, we're just going to send data to the client every second
setInterval( function() {
/*
our message we want to send to the client: in this case it's just a random
number that we generate on the server
*/
var msg = Math.random();
io.emit('message', msg);
console.log (msg);
}, 1000);
Erstellen Sie die letzte Datei mit dem Namen index.html und fügen Sie den folgenden Code ein.
<html>
<head></head>
<body>
<div id="message"></div>
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io();
socket.on('message', function(msg){
console.log(msg);
document.getElementById("message").innerHTML = msg;
});
</script>
</body>
</html>
Sie können dieses sehr einfache Beispiel jetzt testen und eine Ausgabe ähnlich der folgenden sehen:
$ node server.js
listening on *:3001
0.9575486415997148
0.7801907607354224
0.665313188219443
0.8101786421611905
0.890920243691653
Wenn Sie einen Webbrowser öffnen und auf den Hostnamen verweisen, auf dem Sie den Knotenprozess ausführen, sollten in Ihrem Browser dieselben Nummern angezeigt werden, zusammen mit allen anderen verbundenen Browsern, die dieselbe Seite anzeigen.