Pregunta

¿Es posible dejar que el servidor web envíe un mensaje al navegador web sin Comet?

Todas las grandes compañías web como Facebook y Google usan Comet para este propósito y parece un feo truco esperando a desaparecer si las conexiones tcp estuvieran habilitadas para los principales navegadores.

¿Fue útil?

Solución

  

¿Es posible dejar que el servidor web   enviar un mensaje al navegador web   sin cometa?

Sí, es posible a través de Silverlight, Flex, Flash y Java Applets.

  

Todas las grandes empresas web como Facebook   y Google usa Comet para este propósito   y solo parece un truco feo   esperando a desaparecer si tcp   conexiones fueron habilitadas para mayor   navegadores.

Las conexiones TCP a HTML 5 Web Sockets no resolverán el problema. Verá que muchas personas usan Google y Facebook desde su lugar de trabajo, universidad o escuela, y los firewalls a menudo bloquean los puertos no estándar y el tráfico no HTTP. Por lo tanto, una solución que envía mensajes a un navegador web tiene que funcionar a través de HTTP y, a menudo, parece HTTP. Es por eso que Google y Facebook usan Comet y continuarán haciéndolo, de lo contrario no podrán llegar a un gran porcentaje de sus usuarios. De hecho, algunos firewalls y servidores proxy inversos cerrarán las conexiones HTTP de larga ejecución y, por lo tanto, una conexión de sondeo de Ajax a menudo se usa como alternativa. Puedo sugerir algo como StreamHub Reverse Ajax si está buscando un servidor que sea capaz de enviar mensajes al navegador a través del Ajax inverso.

Otros consejos

¿Por qué crees que Facebook y Google lo harían si hubiera otra forma?

Bueno, está bien, hay otras formas. Podrías incrustar un applet de Java en la página. Si el applet de Java está firmado y el usuario le da permiso, podría abrir una conexión de larga duración para que el servidor le envíe eventos. Pero eso le proporcionaría algo que era más frágil, requería más interacción con el usuario, se demoraba en iniciarse y funcionaría en menos plataformas que Comet.

Se ha debatido la adición de eventos enviados por el servidor y sockets web a HTML5, pero eso es extremadamente preliminar y probablemente no llegue al estándar.

Como " Cometa " es un término artificial para cualquier cosa que use el protocolo http existente para simular un impulso de datos, me temo que no hay nada que puedas hacer.

La única solución sería una " mejora " del protocolo actual o alguna solución ampliamente utilizada probablemente basada en complementos ... puede usar java para eso. Pero esto planteará otros problemas porque básicamente necesita tener disponible la conexión entrante en ese navegador.

Comet puede implementarse como una simple llamada ajax de sondeo largo, por lo que se convierte en una cuestión de semántica. Aquí, por ejemplo, hay un plugin jquery que implementa Comet utilizando el protocolo de Bayeux en la parte superior de la llamada ajax de jQuery .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top