HTML5 WebSocket
HTML5 WebSocket es un comienzo proporcionada por la comunicación full-dúplex a través de un único protocolo de conexión TCP.
En la API WebSocket, el navegador y el servidor sólo para hacer una acción apretón de manos, entonces, entre el navegador y el servidor en la formación de una vía rápida. Puede transferir datos directamente entre sí.
Navegador envía al servidor a través petición JavaScript para establecer una conexión WebSocket, se establece la conexión, el cliente y el servidor puede estar conectado directamente a intercambiar datos a través de TCP.
Al llegar la conexión de socket Web, puede enviar los datos al servidor a través del métodosend (), y para recibir los datos devueltos por el servidor onmessageevento.
El siguiente API WebSocket se usa para crear objetos.
var Socket = new WebSocket(url, [protocal] );
El código anterior primer parámetro URL, especifique la conexión URL. El segundo parámetro es el protocolo opcional que especifica sub-protocolo aceptable.
propiedad WebSocket
Estos son los atributos de objeto WebSocket. Supongamos que utilizamos el código anterior para crear un objeto del zócalo:
propiedad | descripción |
---|---|
Socket.readyState | Atributo de sólo lecturareadyState indica el estado de conexión puede tener los siguientes valores:
|
Socket.bufferedAmount | Atributo de sólo lecturabufferedAmount fue añadido () se colocan en una cola de espera para la transferencia, pero aún no se ha emitido una UTF-8 bytes de texto. |
evento WebSocket
Éstos son el objeto WebSocket eventos. Supongamos que utilizamos el código anterior para crear un objeto del zócalo:
evento | controlador de eventos | descripción |
---|---|---|
abierto | Socket.onopen | Activa cuando se establece la conexión |
mensaje | Socket.onmessage | Cuando el cliente recibe los datos de servidor de activación |
error | Socket.onerror | Se activa cuando se produce un error de comunicación |
cerca | Socket.onclose | Se activa cuando la conexión se cerró |
método WebSocket
Éstos son el objeto métodos WebSocket. Supongamos que utilizamos el código anterior para crear un objeto del zócalo:
camino | descripción |
---|---|
Socket.send () | Utilizar la conexión para enviar los datos |
Socket.close () | estrecha conexión |
instancia WebSocket
protocolo Naturaleza WebSocket es un protocolo basado en TCP.
Con el fin de establecer una conexión WebSocket, el navegador cliente inicia un servidor HTTP en primer lugar quisiera solicitar que esta solicitud y las peticiones HTTP habituales, contiene alguna información de cabecera adicional, en el que la información de cabecera adicional "Upgrade: WebSocket" indica que se trata de un protocolo de aplicación actualizar solicitud HTTP, el servidor analiza la información de cabecera adicional se genera mensaje de respuesta al cliente, el cliente de conexión WebSocket y se establece el servidor, ambas partes pueden, a través de la transmisión del canal de conexión libre de información, y esta conexión persiste hasta que el cliente o en el servidor parte activa para cerrar la conexión.
Cliente HTML y JavaScript
En la actualidad, la mayoría de los navegadores soportan WebSocket interfaces (), puede probar los ejemplos en los siguientes navegadores: Chrome, Mozilla, Opera y Safari.
el contenido del archivo w3big_websocket.html
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>本教程(w3big.com)</title> <script type="text/javascript"> function WebSocketTest() { if ("WebSocket" in window) { alert("您的浏览器支持 WebSocket!"); // 打开一个 web socket var ws = new WebSocket("ws://localhost:9998/echo"); ws.onopen = function() { // Web Socket 已连接上,使用 send() 方法发送数据 ws.send("发送数据"); alert("数据发送中..."); }; ws.onmessage = function (evt) { var received_msg = evt.data; alert("数据已接收..."); }; ws.onclose = function() { // 关闭 websocket alert("连接已关闭..."); }; } else { // 浏览器不支持 WebSocket alert("您的浏览器不支持 WebSocket!"); } } </script> </head> <body> <div id="sse"> <a href="javascript:WebSocketTest()">运行 WebSocket</a> </div> </body> </html>
pywebsocket instalación
Antes de ejecutar el programa anterior, tenemos que crear un servicio de apoyo WebSocket. De pywebsocket descarga mod_pywebsocket, o el uso de comandos git para descarga:
git clone https://github.com/google/pywebsocket.git
el apoyo necesario mod_pywebsocket ambiente pitón
mod_pywebsocket de un Apache HTTP extensiones websocket, pasos de instalación son los siguientes:Descomprimir el archivo descargado.
Entra en el directoriopywebsocket.
ejecutar:
$ python setup.py build $ sudo python setup.py install
Consulte la documentación:
$ pydoc mod_pywebsocket
Open Service
Ejecute el siguiente comando en el directorio/ mod_pywebsocket pywebsocket:
$ sudo python standalone.py -p 9998 -w ../example/
El comando anterior se abrirá un número de puerto de servicio 9998, utilice el -w para establecer el controlador de directorio ubicado echo_wsh.py.
Ahora podemos abrir el archivo w3big_websocket.html creó anteriormente en el navegador Chrome. Si su navegador es compatible con WebSocket (), haga clic en "Ejecutar WebSocket", se puede ver todo el proceso de cada paso de la ventana emergente, el Gif demostración proceso:
Una vez que nos detenemos el servicio, que se abrirá "Conexión cerrada ...."