websockets socket servidor nodejs ejemplo ajax flash sockets applet websocket

ajax - servidor - websockets javascript



¿Cómo establecer una conexión TCP Socket desde un navegador web(lado del cliente)? (5)

He leído sobre WebSockets pero no parecen ser solo "sockets", porque hay un protocolo de capa de aplicación sobre ellos.

[¿Es el protocolo websocket tan fácil de implementar que [es] "casi" sockets?

Permitir las conexiones de socket normales directamente desde el navegador nunca va a suceder porque crea un gran riesgo. WebSockets es lo más cercano a sockets sin procesar desde el navegador que obtendrá. El protocolo de enlace inicial de WebSockets es similar a un protocolo de enlace HTTP (permitiendo que los servidores web lo representen / lo conecten) y agrega seguridad de tipo CORS. Además, WebSockets es un transporte basado en mensajes (en lugar de transmitirse como TCP en bruto) y esto se hace utilizando un encabezado de dos bytes en cada marco de mensaje.

Incluso flash no es capaz de hacer conexiones TCP en bruto. Los sockets flash también agregan seguridad CORS, pero en lugar de un protocolo de enlace dentro de la banda, las conexiones de socket flash hacen una conexión al puerto 843 en el servidor de destino para solicitar un archivo de política de seguridad.

¿Hay alguna forma de hacer una conexión de socket puro desde un navegador web para animar las páginas web?

Sí, puede usar mi puente / proxy websockify que permite que un navegador habilitado para WebSockets se conecte directamente a un socket TCP a través de websockify.

Pero sobre HTML5, ¿Por qué se llaman WebSockets si no son Sockets?

WebSockets son un transporte construido en sockets TCP. Después del protocolo de enlace, hay una sobrecarga mínima (normalmente solo un encabezado de dos bytes).

He leído sobre WebSockets pero no parecen ser solo "sockets", porque hay un protocolo de capa de aplicación sobre ellos. " ws: "

¿Hay alguna forma de hacer una conexión de socket puro desde un navegador web para animar las páginas web?

Aquí están mis puñaladas al azar en la oscuridad

  • Applets sockets proporcionados por Java (necesita java instalado)
  • Zócalos de flash proporcionados por Flash (necesita flash instalado)

Pero sobre HTML5, ¿Por qué se llaman WebSockets si no son Sockets?

¿Es el protocolo websocket tan simple de implementar que es "casi" sockets?


El beneficio de WebSocket es que está basado en HTTP. Puede usarlo también en entornos donde se utilizan proxies http. Por lo tanto, Websocket tiene una mayor compatibilidad de infraestructura como el TCP plano.

Además, http / WebSocket le proporciona algunas características que, de lo contrario, debe especificar por su cuenta:

  • Redirigir
  • Keepalive NAT
  • Multiplexación vía URI
  • Enmarcado

Si solicita que se envíen algunos datos desde el servidor, se denomina de forma general COMET o Ajax inverso.

Los sockets web aún no son muy populares, ya que existen problemas inherentes de cortafuegos y un soporte mínimo de los navegadores populares.

Puede echar un vistazo a http://www.ape-project.org/ ya que esta es una de las implementaciones más populares (pero nativa de unix / linux solo por ahora. Para las ventanas, sugieren usar una caja virtual o una implementación basada en vmware )


Simplemente puede enviar datos entre un cliente y un servidor con WebSockets. En pocas palabras, la única diferencia que presenta WebSockets es que el cliente:

  • agrega algunos bytes de encabezado, como el tipo de datos y la longitud
  • Agrega máscaras y codifica los datos usándolos.

El servidor también tiene que agregar bytes de encabezado, pero no necesita codificar los datos.

Si implementa el protocolo correctamente (del lado del servidor, es decir, dado que el navegador ya tiene una implementación), puede usarlo fácilmente para enviar texto y datos binarios. (Aunque el soporte del navegador es limitado, especialmente para este último).


No puedo mejorar las respuestas de Kanaka a sus preguntas secundarias, y sé que esta pregunta tiene un año de antigüedad. Pero para la pregunta principal, Is there any way of doing a pure socket connection from a web browser, to enliven webpages? Hay un proyecto llamado Java / JavaScript Socket Bridge que puede ser lo que usted (o cualquiera que encuentre en esta página de una búsqueda de Google) esté buscando. La ventaja de este método sobre lo que otros han mencionado es que no requiere la ejecución de un servicio del lado del cliente o del servidor. Entonces, por ejemplo, si desea implementar un cliente IRC solo en JavaScript pero su servidor web no le permite suficientes derechos para establecer la conexión, este applet de Java sería el camino a seguir. La única preocupación es asegurarse de que el cliente tenga Java instalado y permitido.