Sigo leyendo sobre mensajes de ping / pong en websockets para mantener viva la conexión, pero no estoy seguro de cuáles son. ¿Es un tipo de marco distinto? (No veo ningún método en un objeto JavaScript WebSocket en Chrome relacionado con ping-pong). ¿O es simplemente un patrón de diseño (por ejemplo, literalmente envío "ping" o cualquier otra cadena al servidor y hago que responda)? ¿Está el ping-pong relacionado con los cuadros de continuación?
La razón por la que pregunto es que estoy usando un marco de Python que se ejecuta detrás de Mongrel2, por lo que me pregunto si hay una manera de enviar a Mongrel2 un mensaje específico de ping / pong que le diga que mantenga viva la conexión sin que mi aplicación de Python necesite Preocúpate por eso. Análogo a tener un método HTTP separado para él, supongo. E imagino que un marco de mensaje de ping / pong dedicado podría ser más simple (menos carga en el servidor y la red) que la cadena "ping", aunque eso probablemente no importaría demasiado.
EDITAR: Acabo de ver RFC 6455 y parece que Ping y Pong son definitivamente tipos de cuadros de control con sus propios códigos de operación. Entonces, ¿cómo envío un marco Ping desde javascript en Chrome?
fuente
Respuestas:
No hay una API de Javascript para enviar marcos de ping o recibir marcos de pong. Esto es compatible con su navegador o no. Tampoco hay una API para habilitar, configurar o detectar si el navegador admite y está utilizando marcos de ping / pong. Se discutió sobre la creación de una API de ping / pong Javascript para esto. Existe la posibilidad de que los pings sean configurables / detectables en el futuro, pero es poco probable que Javascript pueda enviar y recibir marcos de ping / pong directamente.
Sin embargo, si controla tanto el código del cliente como el del servidor, puede agregar fácilmente soporte de ping / pong a un nivel superior. Necesitará algún tipo de encabezado / metadatos de tipo de mensaje en su mensaje si aún no lo tiene, pero eso es bastante simple. A menos que esté planeando enviar pings cientos de veces por segundo o tenga miles de clientes simultáneos, la sobrecarga será mínima para hacerlo usted mismo.
fuente
Ping debe enviarse solo del servidor al cliente, y el navegador debe responder lo antes posible con Pong OpCode, automáticamente. Así que no debes preocuparte por eso en un nivel superior.
Aunque no todos los navegadores admiten el estándar como se supone, pueden tener algunas diferencias en la implementación de dicho mecanismo, e incluso puede significar que no hay funcionalidad de respuesta Pong. Pero personalmente estoy usando Ping / Pong, y nunca vi un cliente que no implementa este tipo de OpCode y una respuesta automática en la implementación del lado del cliente de bajo nivel.
fuente