Recherche…


Introduction

WebSocket est un protocole qui permet une communication bidirectionnelle entre un client et un serveur:

L'objectif de WebSocket est de fournir un mécanisme pour les applications basées sur un navigateur qui ont besoin d'une communication bidirectionnelle avec des serveurs qui ne dépendent pas de l'ouverture de plusieurs connexions HTTP. ( RFC 6455 )

WebSocket fonctionne sur le protocole HTTP.

Syntaxe

  • nouveau WebSocket (url)
  • ws.binaryType / * type de livraison du message reçu: "arraybuffer" ou "blob" * /
  • ws.close ()
  • ws.send (données)
  • ws.onmessage = function (message) {/ * ... * /}
  • ws.onopen = function () {/ * ... * /}
  • ws.onerror = function () {/ * ... * /}
  • ws.onclose = function () {/ * ... * /}

Paramètres

Paramètre Détails
URL L'URL du serveur supportant cette connexion de socket web.
Les données Le contenu à envoyer à l'hôte.
message Le message reçu de l'hôte.

Établir une connexion de socket Web

var wsHost = "ws://my-sites-url.com/path/to/web-socket-handler";
var ws = new WebSocket(wsHost);

Travailler avec des messages de chaîne

var wsHost = "ws://my-sites-url.com/path/to/echo-web-socket-handler";
var ws = new WebSocket(wsHost);
var value = "an example message";

//onmessage : Event Listener - Triggered when we receive message form server
ws.onmessage = function(message) {
    if (message === value) {
        console.log("The echo host sent the correct message.");
    } else {
        console.log("Expected: " + value);
        console.log("Received: " + message);
    }
};

//onopen : Event Listener - event is triggered when websockets readyState changes to open which means now we are ready to send and receives messages from server
ws.onopen = function() {
    //send is used to send the message to server
    ws.send(value);
};

Travailler avec des messages binaires

var wsHost = "http://my-sites-url.com/path/to/echo-web-socket-handler";
var ws = new WebSocket(wsHost);
var buffer = new ArrayBuffer(5); // 5 byte buffer
var bufferView = new DataView(buffer);

bufferView.setFloat32(0, Math.PI);
bufferView.setUint8(4, 127);

ws.binaryType = 'arraybuffer';

ws.onmessage = function(message) {
    var view = new DataView(message.data);
    console.log('Uint8:', view.getUint8(4), 'Float32:', view.getFloat32(0))
};

ws.onopen = function() {
    ws.send(buffer);
};

Faire une connexion de socket Web sécurisée

var sck = "wss://site.com/wss-handler";
var wss = new WebSocket(sck);

Cela utilise le wss au lieu de ws pour créer une connexion de socket Web sécurisée qui utilise HTTPS au lieu de HTTP



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