socket.io Zelfstudie
Aan de slag met socket.io
Zoeken…
Opmerkingen
Socket.IO
is een javascript-bibliotheek voor realtime
webapplicaties. Het maakt realtime bidirectionele communicatie tussen webclients en servers mogelijk. Het bestaat uit twee delen: een bibliotheek aan clientzijde die wordt uitgevoerd in de browser en een bibliotheek aan node.js
voor node.js
Beide componenten hebben een vrijwel identieke API. Net als node.js is het event-driven.
Socket.IO
gebruikt voornamelijk het websocket
protocol met polling als een fallback-optie, terwijl dezelfde interface wordt websocket
. Hoewel het kan worden gebruikt als een eenvoudige wrapper voor webSocket
, biedt het veel meer functies, waaronder uitzenden naar meerdere sockets, gegevens opslaan die aan elke client zijn gekoppeld en asynchrone I / O.
versies
Versie | Publicatiedatum |
---|---|
1.4.8 | 2016/06/23 |
1.4.7 | 2016/06/23 |
1.4.6 | 2016/05/02 |
1.4.5 | 2016/01/26 |
1.4.4 | 2016/01/10 |
1.4.3 | 2016/01/08 |
1.4.2 | 2016/01/07 |
1.4.1 | 2016/01/07 |
1.4.0 | 2015/11/28 |
1.3.7 | 2015/09/21 |
1.3.6 | 2015/07/14 |
1.3.5 | 2015/03/03 |
1.3.4 | 2015/02/14 |
1.3.3 | 2015/02/03 |
1.3.2 | 2015/01/19 |
1.3.1 | 2015/01/19 |
1.3.0 | 2015/01/19 |
1.2.1 | 2014/11/21 |
1.2.0 | 2014/10/27 |
1.1.0 | 2014/09/04 |
1.0.6 | 2014/06/19 |
1.0.5 | 2014/06/16 |
1.0.4 | 2014/06/02 |
1.0.3 | 2014/05/31 |
1.0.2 | 2014/05/28 |
1.0.1 | 2014/05/28 |
1.0.0 | 2014/05/28 |
Installatie of instellingen
Installeer eerst socket.io
module in de toepassing node.js
npm install socket.io --save
Basis HTTP-instellingen
In het volgende voorbeeld wordt socket.io
aan een gewone node.js
HTTP-server node.js
die luistert op poort 3000.
var server = require('http').createServer();
var io = require('socket.io')(server);
io.on('connection', function(socket){
console.log('user connected with socketId '+socket.id);
socket.on('event', function(data){
console.log('event fired');
});
socket.on('disconnect', function(){
console.log('user disconnected');
});
});
server.listen(3000);
Instellen met Express
Express-app kan worden doorgegeven aan http
server die wordt aangesloten op socket.io
.
var app = require('express')(); //express app
var server = require('http').createServer(app); //passed to http server
var io = require('socket.io')(server); //http server passed to socket.io
io.on('connection', function(){
console.log('user connected with socketId '+socket.id);
socket.on('event', function(data){
console.log('event fired');
});
socket.on('disconnect', function(){
console.log('user disconnected');
});
});
server.listen(3000);
Client Side Setup
Controleer het Hello World-voorbeeld hierboven voor de implementatie aan de clientzijde.
"Hallo Wereld!" met socketberichten.
Installeer knooppuntmodules
npm install express
npm install socket.io
Node.js server
const express = require('express');
const app = express();
const server = app.listen(3000,console.log("Socket.io Hello Wolrd server started!"));
const io = require('socket.io')(server);
io.on('connection', (socket) => {
//console.log("Client connected!");
socket.on('message-from-client-to-server', (msg) => {
console.log(msg);
})
socket.emit('message-from-server-to-client', 'Hello World!');
});
Browser-client
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello World with Socket.io</title>
</head>
<body>
<script src="https://cdn.socket.io/socket.io-1.4.5.js"></script>
<script>
var socket = io("http://localhost:3000");
socket.on("message-from-server-to-client", function(msg) {
document.getElementById('message').innerHTML = msg;
});
socket.emit('message-from-client-to-server', 'Hello World!');
</script>
<p>Socker.io Hello World client started!</p>
<p id="message"></p>
</body>
</html>
In het bovenstaande voorbeeld is het pad naar de socket.io-bibliotheek gedefinieerd als /socket.io/socket.io.js
.
Hoewel we geen code hebben geschreven om de socket.io-bibliotheek te bedienen, doet Socket.io dat automatisch.