Buscar..


Introducción

WebSocket es un protocolo que permite la comunicación bidireccional entre un cliente y un servidor:

El objetivo de WebSocket es proporcionar un mecanismo para las aplicaciones basadas en navegador que necesitan comunicación bidireccional con servidores que no dependen de la apertura de múltiples conexiones HTTP. ( RFC 6455 )

WebSocket funciona sobre el protocolo HTTP.

Sintaxis

  • nuevo websocket (url)
  • ws.binaryType / * tipo de entrega del mensaje recibido: "arraybuffer" o "blob" * /
  • ws.close ()
  • ws.send (datos)
  • ws.onmessage = function (message) {/ * ... * /}
  • ws.onopen = function () {/ * ... * /}
  • ws.onerror = function () {/ * ... * /}
  • ws.onclose = function () {/ * ... * /}

Parámetros

Parámetro Detalles
url La url del servidor que soporta esta conexión de socket web.
datos El contenido a enviar al host.
mensaje El mensaje recibido del host.

Establecer una conexión de socket web.

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

Trabajando con mensajes de cadena

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

Trabajando con mensajes binarios.

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

Haciendo una conexión segura de socket web

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

Esto usa wss lugar de ws para hacer una conexión de socket web segura que haga uso de HTTPS en lugar de HTTP



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow