none
Crear subdominio SignalR RRS feed

  • Pregunta

  • Saludos.

    Tengo una aplicacion que usa WebSockets con SignalR, tiene un buen funcionamiento, pero he notado que despues de abrir varias pestañas que tienen programas en mi servidor, despues de varias pestañas aparece en la parte inferior que esta esperando un WebSockets disponible.

    He leido que la mayoria de los navegadores tienen una capacidad de 6 pestañas abiertas que usan este protocolo, y he leido sobre algunas opciones para evitar esto, como desactivando algunas configuraciones en chrome.

    Pero tambien he leido sobre crear subdominios para que no tenga el detalle que comente anteriormente.

    Mi pregunta es sobre si alguien sabe como crearlo o configurarlo se los agradeceria mucho, o que otra opcion me recomiendan.

    Uso vb asp.net.


    • Editado Pollokullos sábado, 8 de febrero de 2020 22:13
    sábado, 8 de febrero de 2020 22:13

Todas las respuestas

  • hola

    >>pero he notado que despues de abrir varias pestañas que tienen programas en mi servidor, despues de varias pestañas aparece en la parte inferior que esta esperando un WebSockets disponible

    esto que comentas no lo entendi, vuelvelo a leer a ver si entendiste que quieres explicar

    a que llamas "programas en mi servidor"?

    que parte inferior ?

    que pasa si dejas de usar pestañas y creas nuevas instancias del browser ?

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    sábado, 8 de febrero de 2020 22:22
  • Hola. Yo lo que haría es desconectar un cliente cuando la pestaña no esté activa y volver a conectar cuando la pestaña se active de nuevo. Prueba algo así en tu código cliente.

    window.addEventListener('focus', function() {
        signalRHub.connect();
    });
    window.addEventListener('blur', function () {
        signalRHub.disconnect();
    });


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    domingo, 9 de febrero de 2020 0:43
    Moderador
  • Leandro me refiero a que tengo varios programas que estan alojados en el mismo servidor, y cuando tengo una pestaña abierta que usa Websockets y abro varias prestañas que tienen un programa de asp.net es cuando en la parte inferior me aparece que esta esperando un socket disponible.
    domingo, 9 de febrero de 2020 1:16
  • Gracias lo probare en mi codigo cliente.
    domingo, 9 de febrero de 2020 1:16
  • hola

    >>abro varias prestañas que tienen un programa de asp.net es cuando en la parte inferior me aparece que esta esperando un socket disponible.

    analiza el articulo

    Hospedaje y escalado de SignalR de ASP.NET Core

    alli menciona

    Si un servidor se queda sin conexiones, verá errores de socket aleatorios y errores de restablecimiento de conexión. Por ejemplo: An attempt was made to access a socket in a way forbidden by its access permissions... Para evitar que SignalR uso de recursos provoque errores en otras aplicaciones Web, ejecute SignalR en servidores diferentes
    a los de otras aplicaciones Web. Para evitar que SignalR uso de recursos provoque errores en una aplicación SignalR, escale horizontalmente para limitar el número
    de conexiones que un servidor tiene que controlar.

    claramente si tienes este problema es que no estas escalando correctamente los servidores web, si usara sun cloud como ser Azure, AWS, etc escalar horizontalmente es solo configuracion

    ahora si tienes servidores propio lo veo complicado

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    domingo, 9 de febrero de 2020 5:05
  • Gracias revisare este articulo, les agradezco sus respuestas.
    domingo, 9 de febrero de 2020 5:30
  • También puedes echar un vistazo a este artículo.

    Cannot have many tabs open with SignalR

     Y este SignalR – handling browser connection limits_


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos


    domingo, 9 de febrero de 2020 17:35
    Moderador
  • Gracias, voy a leer los articulos.
    domingo, 9 de febrero de 2020 18:20
  • He leido los aportes que me comentan, un punto que se me olvido comentar es que tengo todo alojado en un solo servidor, y como comenta leandro tendria q usar Azure para poder escalar todo lo que implemente, es corrrecto?
    viernes, 14 de febrero de 2020 21:21
  • He checado los enlaces pero si y qusiera llamar por iframes a la aplicacion donde estoy usando Signal, en ese momento se me saturarian.
    viernes, 14 de febrero de 2020 21:23
  • hola

    >>qusiera llamar por iframes a la aplicacion donde estoy usando Signal,

    iframe, quen sigue usando eso? y menos aun para tener una comunicacion con websocket, eso atrasa años

    solo para algun que otro caso muy pero muy particular quizas se podria usar pero sino reemplaza el iframe

    >>tendria q usar Azure para poder escalar todo lo que implemente, es corrrecto?

    hay escalados propios si quieres implementarlo, pero no aplica a un solo servidor, requiere una granja y un balanceador de carga

    esto Azure con una simple configuracion lo implementa por defecto, pero si quieres hacerlo tu deberas comprar el equipo

    o quizas si es uno solo usar algo como ser docker o kubernetes, entonces con containers podrias exponer diferentes servicio desde un mismo servidor

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 14 de febrero de 2020 22:41