¿Qué es Websocket?
Mi tecnología web favorita dentro de la especificación HTML5 es la API WebSocket, que se está volviendo popular rápidamente. WebSocket proporciona una tecnología popular para reemplazar la tecnología Ajax que hemos estado usando durante los últimos años. Esta nueva API proporciona una manera de enviar mensajes de manera eficiente desde el cliente al servidor utilizando una sintaxis simple. Echemos un vistazo a la API WebSocket de HTML5: disponible tanto en el lado del cliente como en el del servidor. Y existe una excelente API de terceros llamada Socket. Imagen Orthicon
1. ¿Qué es la API WebSocket?
WebSocket API es la próxima generación de comunicación asincrónica entre cliente y servidor. Esta comunicación reemplaza un único socket TCP, utilizando protocolos ws o wss, y puede ser utilizada por cualquier programa cliente y servidor. WebSocket está actualmente estandarizado por el W3C. WebSocket ha sido compatible con Firefox 4, Chrome 4, Opera 10.70, Safari 5 y otros navegadores.
Lo mejor de la API WebSocket es que el servidor y el cliente pueden enviar información entre sí en cualquier momento dentro de un rango de tiempo determinado. WebSocket no se limita a la comunicación Ajax (o XHR), porque la tecnología Ajax requiere que el cliente inicie una solicitud, y el servidor WebSocket y el cliente pueden enviar información entre sí. XHR tiene un dominio restringido, mientras que WebSocket permite la comunicación entre dominios.
Una de las cosas inteligentes de la tecnología Ajax es que no hay forma de diseñarla. Los WebSockets se crean para destinos específicos y se utilizan para enviar mensajes en ambas direcciones.
2. Uso de la API WebSocket
Céntrese únicamente en la API del lado del cliente, porque cada lenguaje del lado del servidor tiene su propia API. El siguiente fragmento de código abrirá una conexión, creará un detector de eventos para la conexión, se desconectará, enviará un mensaje al servidor y luego cerrará la conexión.
[Copiar al portapapeles] [ - ]
Código:
//Crear una instancia de socket.
var socket = new web socket(' ws://localhost:8080 ');
//Abrir socket
socket.onopen = función (evento) ) {
//Enviar mensaje de inicialización.
socket . send('¡Soy un cliente, estoy escuchando!');
//Escuchar mensajes
socket en mensaje = function( event) {
console.log('El cliente recibió mensaje', evento);
};
//Escuche el cierre del socket p >
socket . onclose = function(event){
console.log('El socket de notificación del cliente ha sido cerrado', evento);
};
//Cerrar el socket....
//socket.close()
};
Echemos un vistazo a la inicialización anterior fragmento. El parámetro es la URL, ws representa el protocolo WebSocket. Los métodos onopen, onclose y onmessage conectan eventos a la instancia del socket. Cada método proporciona un evento para indicar el estado del socket.
El evento onmessage proporciona un atributo de datos que puede contener la parte del cuerpo del mensaje.
La parte del cuerpo del mensaje debe ser una cadena, que se puede serializar/deserializar para pasar más datos.
La sintaxis de WebSocket es muy simple y usar WebSockets es muy fácil... a menos que el cliente no admita WebSocket. Actualmente, el navegador IE no admite la comunicación WebSocket. Si su cliente no admite la comunicación WebSocket, existen varias opciones de respaldo disponibles:
Tecnología Flash: Flash puede proporcionar una alternativa simple. La desventaja más obvia de usar Flash es que no todos los clientes tienen Flash instalado y algunos clientes como iPhone/iPad no son compatibles con Flash.
Tecnología de sondeo largo AJAX: la industria ha estado utilizando la tecnología de sondeo largo AJAX para simular WebSocket durante algún tiempo. Es una técnica viable, pero no optimiza el mensaje enviado. En otras palabras, es una solución, pero no la mejor solución técnica.
Debido a que los navegadores actuales como IE no admiten WebSocket, ¿qué debo hacer si quiero proporcionar procesamiento de eventos WebSocket, transmisión de retorno y utilizar una API unificada en el lado del servidor? Afortunadamente, Guillermo Rauch creó una salida. Tecnología IO.
En tercer lugar, WebSocket con Socket. Imagen Orthicon
Casquillo. IO es una API WebSocket creada por Guillermo Rauch, director de tecnología de LearnBoost y científico jefe de LearnBoost Labs. enchufe. IO utiliza la función de detección para determinar si se debe establecer una conexión WebSocket, una conexión de sondeo larga AJAX o Flash. Se pueden crear aplicaciones en tiempo real rápidamente. enchufe. IO también proporciona una API NodeJS que se parece mucho a la API del cliente.
Establecer un socket de cliente. Imagen Orthicon
Casquillo. IO se puede descargar desde GitHub y el archivo socket.io.js se puede incluir en la página:
[Copiar al portapapeles] [-]
Código:
ltscript src = "/blog/2010/10/31/Dojo-web socket/