socket ejemplo tcp websocket

ejemplo - ¿Cuál es la diferencia fundamental entre WebSockets y TCP puro?



websocket php ejemplo (3)

Es más fácil comunicarse a través de sockets TCP cuando se trabaja dentro de un límite de intranet, ya que es probable que tenga control sobre las máquinas en esa red y pueda abrir puertos adecuados para hacer las conexiones TCP.

En Internet, te estás comunicando con el servidor de otra persona en el otro extremo. Es muy poco probable que tengan un socket viejo abierto para las conexiones. Por lo general, solo tendrán unos pocos estándar como el puerto 80 para HTTP o 443 para HTTPS. Entonces, para comunicarse con el servidor está obligado a conectarse usando uno de esos puertos.

Dado que estos son puertos estándar para servidores web que generalmente hablan HTTP, usted está obligado a cumplir con el protocolo HTTP, de lo contrario, el servidor no le hablará. El propósito de los sockets web es permitirle iniciar una conexión a través de HTTP, pero luego negociar para usar el protocolo de sockets web (suponiendo que el servidor sea capaz de hacerlo) para permitir un flujo de comunicación similar al "socket TCP".

He leído sobre WebSockets y me pregunto por qué el navegador no puede simplemente abrir una conexión TCP trivial y comunicarse con el servidor como cualquier otra aplicación de escritorio. ¿Y por qué esta comunicación es posible a través de websockets?


Los navegadores web operan en la capa de Aplicación, mientras que TCP opera en la Capa de Transporte. Como desarrollador de aplicaciones web, es más fácil enviar mensajes por cable a través de la capa de aplicación en lugar de bytes sin procesar en la capa de transporte.

El subyacente WebSockets es TCP, se abstrae para simplificar.


Websocket es un protocolo de capa de aplicación mientras que TCP es el protocolo de capa de transporte. En la capa de transporte, generalmente tenemos protocolo TCP y UDP. Cualquier mensaje de la capa de aplicación debe pasar por la capa de transporte para transmitirse a otra máquina. Por lo tanto, websocket y tcp tienen una relación entre ellos y no pueden ser comparables.