none
Se pierden notificaciones signalR y asp.net RRS feed

  • Pregunta

  • Buen dia a todos. Tengo un detalle con una aplicacion que estoy realizando con asp.net, websockets y signalR.

    La aplicacion funciona bien durante cierto tiempo, por momentos se cierra la conexion y se vuelve a abrir, pero hay un cierto punto donde me aparece que el protocolo de websockets se vuelve a abrir, pero ya no recibo las notificaciones para mi aplicacion.

    Adjunto imagenes de los mensajes que me aparecen en la consola del navegador, espero me puedan ayudar.

    Aqui se conecta y todo esta bien

    Aqui todo sigue bien

    Aqui todo sigue bien

    Aqui se empieza a cerrar el protocolo

    Despues de cierto tiempo ya no se reciben notificaciones

    Nota: en mi codigo tengo una seccion donde indico que se reconecte el protocolo si es que se llega a cerrar.

    Estoy usando un timespan para poder estar checando en sql los cambios que necesito.

    sábado, 14 de diciembre de 2019 0:42

Respuestas

  • hola

    no entiendo ese trace de la consola en que orden se ejecuta

    Porque al final hay websocket opened y disconnectuno debajo del otro

    cuantos mensajes estas enviando desde el servidor al cliente? si envias mensajes por segundo quizas estas colapsando la conexion, valida enviar mensajes en tiempos razonables

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    sábado, 14 de diciembre de 2019 0:55
  • hola

    >>la razon por la cual lo hago en tan poco tiempo es porque la idea es mostrar cambios lo mas real que se pueda, o que otra sugerencia me puede sugerir?

    si reduces la cantidad de mensajes que envias, no se quizas alargando el tiempo en el cual notificas, la situacion cambia ?

    lo planteo porque quizas necesites alguna comunicacion mas estilo streaming

    ademas descartar que sea causado por un colapso en el enlace, me llama la atencion que no pueda volver a reconecta o que si lo hace caiga nuevamente, quizas tambien sea un tema en el servidor, cuando esto suceda valida si con un reset del servicio vuelve a reconectarte, puede que los puertos que intenta mantener con websocket quedaron bloqueados

    otra tecnica es ver si se puede cambiar la forma de conexion de SignalR, quizas no usar websocket sino quizas long pool

    Understanding and Handling Connection Lifetime Events in SignalR

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    sábado, 14 de diciembre de 2019 13:11
  • Gracias he estado checando tus comentarios, puse un time mas retardado, y seguire checando las opciones que me comentas.

    Te agradezco, saludos.

    sábado, 14 de diciembre de 2019 17:46
  • Cuando hablas de hacer un reset del servicio, esa parte no la entiendo? es cuando se identifica que se desconecto el protocolo?

    Lo haria en esta parte?

                $.connection.hub.disconnected(function () {
                    setTimeout(function () {
                       $.connection.hub.start();
                    }, 5000); // Restart connection after 5 seconds.
                });

    sábado, 14 de diciembre de 2019 18:20

Todas las respuestas

  • hola

    no entiendo ese trace de la consola en que orden se ejecuta

    Porque al final hay websocket opened y disconnectuno debajo del otro

    cuantos mensajes estas enviando desde el servidor al cliente? si envias mensajes por segundo quizas estas colapsando la conexion, valida enviar mensajes en tiempos razonables

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    sábado, 14 de diciembre de 2019 0:55
  • El orden es como estan las imagenes, en las ultimas dos imagenes es donde se cierra la conexion e intenta otra vez conectarse, y el timespan se ejecuta cada dos segundos, la razon por la cual lo hago en tan poco tiempo es porque la idea es mostrar cambios lo mas real que se pueda, o que otra sugerencia me puede sugerir?.

    Ya que el proposito como comento es tener una aplicacion la cual muestre informacion cuando haya cambios, puede ser durante todo el dia.

    Saludos.

    sábado, 14 de diciembre de 2019 1:02
  • hola

    >>la razon por la cual lo hago en tan poco tiempo es porque la idea es mostrar cambios lo mas real que se pueda, o que otra sugerencia me puede sugerir?

    si reduces la cantidad de mensajes que envias, no se quizas alargando el tiempo en el cual notificas, la situacion cambia ?

    lo planteo porque quizas necesites alguna comunicacion mas estilo streaming

    ademas descartar que sea causado por un colapso en el enlace, me llama la atencion que no pueda volver a reconecta o que si lo hace caiga nuevamente, quizas tambien sea un tema en el servidor, cuando esto suceda valida si con un reset del servicio vuelve a reconectarte, puede que los puertos que intenta mantener con websocket quedaron bloqueados

    otra tecnica es ver si se puede cambiar la forma de conexion de SignalR, quizas no usar websocket sino quizas long pool

    Understanding and Handling Connection Lifetime Events in SignalR

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    sábado, 14 de diciembre de 2019 13:11
  • Gracias he estado checando tus comentarios, puse un time mas retardado, y seguire checando las opciones que me comentas.

    Te agradezco, saludos.

    sábado, 14 de diciembre de 2019 17:46
  • Cuando hablas de hacer un reset del servicio, esa parte no la entiendo? es cuando se identifica que se desconecto el protocolo?

    Lo haria en esta parte?

                $.connection.hub.disconnected(function () {
                    setTimeout(function () {
                       $.connection.hub.start();
                    }, 5000); // Restart connection after 5 seconds.
                });

    sábado, 14 de diciembre de 2019 18:20