Autor Tema: Aviso "Conection is closed" Cumulus MX  (Leído 2943 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Lraso

  • Sr. Member
  • ****
  • Mensajes: 292
    • Ver Perfil
  • Estación: Paterna - Casas Verdes - ESPVA4600000046980C / Bejis - ESPVA1200000012430A
Aviso "Conection is closed" Cumulus MX
« en: 01 de Marzo del 2021, 09:02:04 am »
Hola,

Desde hace algún tiempo vengo observando (creo que me pasa desde que activé la web de Cumulus MX), que si me dejo la interface abierta del navegador al cabo de unas horas me aparece el mensaje "conection is closed" dejándose de actualizar los datos en la interface del navegador. La aplicación en msdos sigue abierta y funcionando, actualizando los datos en la web y enviando la plantilla a Meteoclimatic, pero tengo que refrescar la interface en Chrome para que se actualicen ahí los datos.

Me pasa en la estación de Bejís. Sin embargo en la de Paterna, con el mismo navegador y mismo sistema operativo (Windows 7 starter), no me da el problema.

¿Alguna solución para evitar esto?

Gracias de antemano.
« Última modificación: 07 de Marzo del 2021, 20:40:39 pm por Lraso »

Desconectado jmviper

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 4.576
  • "Vortex Complex"
    • Ver Perfil
    • www.meteoarchena.es
  • Estación: Archena - ESMUR3000000030600B
Re:Aviso "Conection is closed" Cumulus MX
« Respuesta #1 en: 01 de Marzo del 2021, 12:31:29 pm »
Hola Luis

Citar
al cabo de unas horas

yo lo pongo solo unos pocos minutos  *+* *+*

A ver, la interfaz web de MX corre en su propio servidor web (puerto 8998 que es el que le ponemos en la URL) y esa página principal de los instrumentos va por websockets por defecto, esto quiere decir que se establece un canal de comunicación entre cliente (navegador) y servidor (MX) en el que se van actualizando los datos. Si hay algún fallo en esa comunicación se corta y aparece lo de "connection is closed" con la única solución de tener que recargar la página, peeeeero eso es algo que se puede controlar en el javascript que gestiona el websocket.

El javascript está en la carpeta interface/js de MX y se llama dashboard.js. La función que maneja el websocket está en la línea 104 y se llama function OpenWebSocket(wsport). Dentro de esa función están las siguientes líneas:

Código: [Seleccionar]
// websocket is closed.
            ws.onclose = function () {
                alert('Connection is closed...');
            };

Eso es lo que salta cuando se termina la conexión del webscoket. Si le ponemos un timeout o intervalo de espera podemos hacer que reconecte tras x segundos.
Dejaríamos esas líneas así:

Código: [Seleccionar]
// websocket is closed.
            ws.onclose = function(e) {
    var tiempo = 30; // segundos
    console.log('Socket cerrado. Reconexión en ' + tiempo + ' segundos.', e.reason);
    setTimeout(function() {
      OpenWebSocket(wsport);
    }, tiempo * 1000);
  };

En esa línea de var tiempo = 30 le ponemos los segundos en los que queremos que reconecte el websocket.

No se sabe cuánto tiempo pierde la conexión, pero es algo raro ya que no es un servidor externo (MX está en el propio PC), otra cosa es si lo estamos viendo desde otro equipo donde sí podría haber problemas de conexión.

Otra alternativa en vez de usar websockets es usar llamadas ajax. Se configura en el mismo archivo dashboard.js. En la línea 4 aparece:

let useWebSockets = true; // set to false to use Ajax updating

Si en vez de true ponemos false como dice en el comentario haremos llamadas ajax a un archivo de texto que genera MX, por lo tanto no se usa ese canal de websockets y no se cortará la conexión pero si no hay conexión cliente-servidor no habrá actualización de datos, pero nos ahorramos que haya que recargar página.

Siempre después de hacer algún cambio de estos hay que reiniciar MX.

Esto como se suele decir es un "apaño" (workaround en inglés  *-* *-*) pero da una pista de que puede haber un problema de conexión entre el servidor de MX y el navegador. Eso ya sería un tema a investigar si es dentro o fuera del equipo que corre MX.

Prueba la primera opción del timeout y si no la segunda del ajax.

Y cuidado, si actualizas con nueva versión de MX socreescribirá los cambios del dashboard.js así que haz copia en otro sitio y pégala cuando actualices.



Archena, Valle de Ricote (Murcia). 120 msnm. 19.622 hab.
Davis Vantage Pro2 Plus

www.meteoarchena.es

Desconectado Lraso

  • Sr. Member
  • ****
  • Mensajes: 292
    • Ver Perfil
  • Estación: Paterna - Casas Verdes - ESPVA4600000046980C / Bejis - ESPVA1200000012430A
Re:Aviso "Conection is closed" Cumulus MX
« Respuesta #2 en: 01 de Marzo del 2021, 21:42:32 pm »
Hola JM,

Pues ya he editado el archivo con la opción del timeout y lo he guardado para poder usarlo en futuras actualizaciones de MX. He dejado el navegador con el programa abierto y a ver mañana por la mañana cuando me levante lo que me encuentro. Si funciona te aviso y si no pues probaré la opción del ajax (que me recuerda a un equipo de fútbol  *-*)
Sobre el tema del problema de conexión entre el servidor de MX y el navegador debe ser algo interno, puesto que todo se gestiona dentro del mismo equipo. Lo que me sorprende es lo que comentaba en el primer mensaje, que dos equipos prácticamente idénticos con las mismas aplicaciones funcionando, en uno pase y en el otro no... pero bueno, me imagino que esto se perderá entre la maraña de datos que circulan por su interior.

Como siempre, muchas gracias.

Desconectado jmviper

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 4.576
  • "Vortex Complex"
    • Ver Perfil
    • www.meteoarchena.es
  • Estación: Archena - ESMUR3000000030600B
Re:Aviso "Conection is closed" Cumulus MX
« Respuesta #3 en: 01 de Marzo del 2021, 22:21:14 pm »
Ok

En el trozo de código nuevo hay una línea que vuelca información en la consola del navegador (se llega a ella generalmente pulsando F12 y pestaña Console)

En ella podrás ver líneas como WebSocket connection to 'ws://127.0.0.1:8998/ws' failed: Error in connection establishment: net::ERR_CONNECTION_TIMED_OUT
o
WebSocket connection to 'ws://127.0.0.1:8998/ws' failed: Error in connection establishment: net::ERR_INTERNET_DISCONNECTED

Podrá darnos una pista de lo que ocurre lo que ponga.


Archena, Valle de Ricote (Murcia). 120 msnm. 19.622 hab.
Davis Vantage Pro2 Plus

www.meteoarchena.es

Desconectado Lraso

  • Sr. Member
  • ****
  • Mensajes: 292
    • Ver Perfil
  • Estación: Paterna - Casas Verdes - ESPVA4600000046980C / Bejis - ESPVA1200000012430A
Re:Aviso "Conection is closed" Cumulus MX
« Respuesta #4 en: 02 de Marzo del 2021, 09:36:14 am »
Buenos días JM,
Comentarte que el timeout ha funcionado a la perfección. Toda la noche la consola del navegador abierta y no se ha interrumpido la conexión con el servidor de MX. Así que problema solucionado.
En relación a lo que apuntas sobre el trozo de código que vuelca información en la consola, pulso F12 y no me aparece nada y no veo ninguna pestaña que ponga Console. No se si será otra tecla la que hay que pulsar... pero bueno, como funciona tampoco creo que sea necesario.
Saludos.

Desconectado jmviper

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 4.576
  • "Vortex Complex"
    • Ver Perfil
    • www.meteoarchena.es
  • Estación: Archena - ESMUR3000000030600B
Re:Aviso "Conection is closed" Cumulus MX
« Respuesta #5 en: 02 de Marzo del 2021, 11:51:11 am »
Sí sí.... el timeout debe de cumplir su cometido, cada 30 segundos (o lo que le hayamos puesto) lanzará el websocket si está desconectado, se puede tirar así toda la vida hasta que pueda crearse por haber conexión cliente-servidor.

En cuanto a lo de F12 es verdad que todos los navegadores no lo tienen, de los "mayores" como Chrome, Edge, Firefox y Opera el único que no me ha abierto las herramientas de desarrollador con F12 es Opera, los demás sí.

La otra alternativa es poner el puntero del ratón sobre la página y con clic derecho del ratón elegir Inspeccionar elemento y una vez abiertas las herramientas ir a la pestaña Console o Consola (generalmente la segunda empezando por la izquierda). No es absolutamente necesario, sino simple curiosidad por saber qué error puede haber.



Archena, Valle de Ricote (Murcia). 120 msnm. 19.622 hab.
Davis Vantage Pro2 Plus

www.meteoarchena.es

Desconectado Lraso

  • Sr. Member
  • ****
  • Mensajes: 292
    • Ver Perfil
  • Estación: Paterna - Casas Verdes - ESPVA4600000046980C / Bejis - ESPVA1200000012430A
Re:Aviso "Conection is closed" Cumulus MX
« Respuesta #6 en: 02 de Marzo del 2021, 15:10:25 pm »
Hola de nuevo. Ya he podido acceder a través de Inspeccionar elemento con el botón derecho del ratón. Te adjunto un par de pantallazos para ver si puedes averiguar que está pasando. Si necesitas alguna información mas me dices.
Gracias.


Desconectado jmviper

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 4.576
  • "Vortex Complex"
    • Ver Perfil
    • www.meteoarchena.es
  • Estación: Archena - ESMUR3000000030600B
Re:Aviso "Conection is closed" Cumulus MX
« Respuesta #7 en: 02 de Marzo del 2021, 22:36:02 pm »
No se saca mucho en claro. Sea como sea mientras funcione los dejamos así  8)


Archena, Valle de Ricote (Murcia). 120 msnm. 19.622 hab.
Davis Vantage Pro2 Plus

www.meteoarchena.es