websocket onclose no se activa en chrome – linux cuando el cliente está desconectado de la networking

Implementé websocket usando java en el server. En el cliente, creé el object websocket y tengo mi propia function para todos los events, incluido onClose. Probé la reconnection … websocket en Chrome 26, Mozilla tanto en windows como en cromo.

Chrome in windows activa el cierre de un evento cuando conecté el cable de networking (es decir, onclose triggers con closecode 1006 [abnormaly closed] como se menciona en https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent ) pero Chrome in linux no activa ningún evento.

Por favor, sugiérame qué error cometí.

Mi pregunta exacta es por qué Chrome en Windows se dispara al onclose cuando la networking está desconectada, pero en el caso de Linux, no se desencadena.

Es posible que estas aplicaciones no noten la ruptura de la connection TCP. Se utiliza un time de espera para detectar una connection TCP fallida, y creo que el time de espera pnetworkingeterminado es bastante largo.

El browser / sistema operativo debería notar que la connection se va tan pronto como intenta enviar datos. Intente enviar algunos datos después de desconectar el cable de networking, vea si eso desencadena el evento.

Además, ¿cuánto time has esperado la señal? Tal vez la connection solo tiene un largo time de espera de TCP.

Si aún no recibe un evento cerrado, es probable que se deba a un error en la implementación. Si necesita saber cuándo se interrumpe la connection, implemente un mecanismo de ping con su propio time de espera. Creo que el protocolo websocket define su propio protocolo de ping, tal vez investigar eso.

Además, para Chrome parece haber un problema archivado para esto. Tal vez te ayude.