socket.ioAan de slag met socket.io


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

"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.

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.