Recherche…


Remarques

Socket.IO est une bibliothèque javascript pour les applications Web en realtime . Il permet une communication bidirectionnelle en temps réel entre les clients Web et les serveurs. Il comporte deux parties: une bibliothèque côté client qui s'exécute dans le navigateur et une bibliothèque côté serveur pour node.js Les deux composants ont une API presque identique. Comme node.js, il est piloté par les événements.

Socket.IO utilise principalement le protocole websocket avec interrogation comme option de secours, tout en fournissant la même interface. Bien qu'il puisse être utilisé comme un simple wrapper pour webSocket , il offre de nombreuses fonctionnalités supplémentaires, notamment la diffusion sur plusieurs sockets, le stockage de données associées à chaque client et les E / S asynchrones.

Versions

Version Date de sortie
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

Installation ou configuration

Tout d'abord, installez le module socket.io dans l'application node.js

npm install socket.io --save

Configuration HTTP de base

L'exemple suivant associe socket.io à un serveur HTTP simple node.js qui écoute sur le port 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);

Configuration avec Express

L'application Express peut être transmise au serveur http qui sera attaché à 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);

Configuration côté client

Vérifiez l'exemple Hello World ci-dessus pour l'implémentation côté client.

"Bonjour le monde!" avec des messages de socket.

Installer des modules de noeud

npm install express
npm install socket.io

Serveur Node.js

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!');
});

Client de navigateur

<!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>

Dans l'exemple ci-dessus, le chemin d'accès à la bibliothèque socket.io est défini comme /socket.io/socket.io.js .

Même si nous n'avons écrit aucun code pour servir la bibliothèque socket.io, Socket.io le fait automatiquement.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow