Por HTTP Streaming Comet, me refiero a las variaciones "para siempre iframe"/"para siempre" XHR que no cierran la conexión después de los datos ha sido empujado desde el servidor, en lugar de encuesta estándar y largo de votación que se cierran y enviar un nuevo solicitud para cada evento push del servidor.¿Es Http Streaming Comet posible en Safari?
Miré el paquete dojo.io.cometd y parece que sólo tienen implementaciones de votación. También encontré this example, pero parece que no funciona en webkit incluso después de un poco de retoques (lo hice funcionar en cualquier otro lugar). This announcement from the safari blog parece sugerir que es posible con xhr, pero no pude encontrar ningún código o documentación, ni pude hacerlo funcionar.
¿Alguien sabe de una técnica, la escritura, la biblioteca o de demostración que lleva a cabo transmisión HTTP cometa en los navegadores WebKit (Safari y Chrome)?
actualización
Después de un poco más de retoques, he encontrado que hay dos cosas que hay que hacer con el fin de conseguir la transmisión HTTP trabajar en Safari a través de XHR:
- Las necesidades de respuesta tener un Content-Type: multipart/x-mixed-replace
- la respuesta tiene que enviar algunos personajes de "ruido" antes de que el navegador comienza a mostrar las actualizaciones de forma coherente. Supongo que esto tiene algo que ver con llenar un buffer interno.
Actualización 2
finalmente conseguí que funcione en todos los navegadores que utilizan una técnica de marco flotante. La advertencia para la solución es que solo los navegadores basados en WebKit deberían recibir el encabezado multipart/x-mixed-replace.
Sin "/ multiparte x-mixed-replace", todavía puede obtener HTTP streaming de trabajo en Safari. Solo tienes que hacer el análisis por ti mismo. –
@Leo: ¿Es posible que comparta los fragmentos de código que permitieron Http Streaming en todos los navegadores? Esto debería ser útil para mí y la comunidad. Gracias. – ManKum