You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 5-network/11-websocket/article.md
+9-9Lines changed: 9 additions & 9 deletions
Original file line number
Diff line number
Diff line change
@@ -17,9 +17,9 @@ También hay una versión encriptada `wss://`. Equivale al HTTPS para los websoc
17
17
```smart header="Siempre dé preferencia a `wss://`"
18
18
El protocolo `wss://` no solamente está encriptado, también es más confiable.
19
19
20
-
Esto es porque los datos en `ws://` no están encriptados y son visibles para cualquier intermediario. Entonces los servidores proxy viejos que no conocen el WebSocket podrían interpretar los datos como cabeceras "extrañas" y abortar la conexión.
20
+
Esto es porque los datos en `ws://` no están encriptados y son visibles para cualquier intermediario. Entonces los servidores proxy viejos que no reconocen el protocolo WebSocket podrían interpretar los datos como cabeceras "extrañas" y abortar la conexión.
21
21
22
-
En cambio `wss://` es WebSocket sobre TLS (al igual que HTTPS es HTTP sobre TLS), la seguridad de la capa de transporte encripta los datos del que envía y los desencripta para el que recibe. Los paquetes de datos pasan encriptados a través de los proxy. Estos servidores no pueden ver lo que hay dentro y los dejan pasar.
22
+
En cambio `wss://` es WebSocket sobre TLS (al igual que HTTPS es HTTP sobre TLS), la seguridad de la capa de transporte encripta los datos del que envía y los desencripta el que recibe. Los paquetes de datos pasan encriptados a través de los proxy. Estos servidores no pueden ver lo que hay dentro y los dejan pasar.
23
23
```
24
24
25
25
Una vez que el socket es creado, debemos escuchar los eventos que ocurren en él. Hay en total 4 eventos:
Para propósitos de demostración, hay un pequeño servidor [server.js](demo/server.js), escrito en Node.js, ejecutándose para el ejemplo de arriba. Este responde con "Hello from server, John", espera 5 segundos, y cierra la conexión.
63
+
Para propósitos de demostración, tenemos un pequeño servidor [server.js](demo/server.js), escrito en Node.js, ejecutándose para el ejemplo de arriba. Este responde con "Hello from server, John", espera 5 segundos, y cierra la conexión.
64
64
65
65
Entonces verás los eventos `open` -> `message` -> `close`.
66
66
@@ -72,7 +72,7 @@ Ahora hablemos más en profundidad.
72
72
73
73
Cuando se crea `new WebSocket(url)`, comienza la conexión de inmediato.
74
74
75
-
Durante la conexión, el navegador (usando cabeceras "header") le pregunta al servidor: "¿Soportas Websockets?" y si si el servidor responde "Sí", la comunicación continúa en el protocolo WebSocket, que no es HTTP en absoluto.
75
+
Durante la conexión, el navegador (usando cabeceras o "header") le pregunta al servidor: "¿Soportas Websockets?" y si si el servidor responde "Sí", la comunicación continúa en el protocolo WebSocket, que no es HTTP en absoluto.
76
76
77
77

78
78
@@ -119,9 +119,9 @@ Por ejemplo:
119
119
120
120
-`Sec-WebSocket-Extensions: deflate-frame` significa que el navegador soporta compresión de datos. una extensión es algo relacionado a la transferencia de datos, funcionalidad que extiende el protocolo WebSocket. La cabecera `Sec-WebSocket-Extensions` es enviada automáticamente por el navegador, con la lista de todas las extensiones que soporta.
121
121
122
-
-`Sec-WebSocket-Protocol: soap, wamp` significa que queremos transferir no cualquier dato, sino datos en protocolos [SOAP](https://es.wikipedia.org/wiki/Simple_Object_Access_Protocol) o WAMP ("The WebSocket Application Messaging Protocol"). Los subprotocolos de WebSocket están registrados en el [catálogo IANA](http://www.iana.org/assignments/websocket/websocket.xml). Entonces, esta cabecera describe los formatos de datos que vamos a usar.
122
+
-`Sec-WebSocket-Protocol: soap, wamp` significa que queremos transferir no cualquier dato, sino datos en protocolos [SOAP](https://es.wikipedia.org/wiki/Simple_Object_Access_Protocol) o WAMP ("The WebSocket Application Messaging Protocol"). Los subprotocolos de WebSocket están registrados en el [catálogo IANA](https://www.iana.org/assignments/websocket/websocket.xml). Entonces, esta cabecera describe los formatos de datos que vamos a usar.
123
123
124
-
Esta cabecera opcional se establece usando el segundo parámetro de `new WebSocket`, que es el array de subprotocolos. Por ejemplo si queremos usar SOAP o WAMP:
124
+
Esta cabecera opcional se establece usando el segundo parámetro de `new WebSocket`, que es el array de subprotocolos. Por ejemplo, si queremos usar SOAP o WAMP:
125
125
126
126
```js
127
127
let socket =newWebSocket("wss://javascript.info/chat", ["soap", "wamp"]);
@@ -167,7 +167,7 @@ La comunicación WebSocket consiste de "frames" (cuadros) de fragmentos de datos
167
167
- "text frames" -- contiene datos de texto que las partes se mandan entre sí.
168
168
- "binary data frames" -- contiene datos binarios que las partes se mandan entre sí.
169
169
- "ping/pong frames" son usados para testear la conexión; enviados desde el servidor, el navegador responde automáticamente.
170
-
- También existe "connection close frame" y otros pocos frames de servicio.
170
+
- También existe "connection close frame", y algunos otros frames de servicio.
171
171
172
172
En el navegador, trabajamos directamente solamente con frames de texto y binarios.
173
173
@@ -249,7 +249,7 @@ Hay otros códigos como:
249
249
250
250
La lista completa puede encontrarse en [RFC6455, §7.4.1](https://tools.ietf.org/html/rfc6455#section-7.4.1).
251
251
252
-
Los códigos de WebSocket son como los de HTTP, pero diferentes. En particular, los menores a `1000` son reservados, habrá un error si tratamos de establecerlos.
252
+
Los códigos de WebSocket son como los de HTTP pero diferentes. En particular, los códigos menores a `1000` son reservados, habrá un error si tratamos de establecerlos.
El código de servidor está algo fuera de nuestro objetivo. Aquí usaremos Node.js, pero no necesitas hacerlo. Otras plataformas también tienen sus formas de trabajar con WebSocket.
319
+
El código de servidor está fuera de nuestro objetivo. Aquí usaremos Node.js pero no necesitas hacerlo. Otras plataformas también tienen sus formas de trabajar con WebSocket.
0 commit comments