Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

234
Vistas
El método del lado del cliente de SignalR no se activa desde el clic del botón del lado del servidor

Tengo una aplicación SignalR basada en Visual Studio 2019, donde el cliente se conecta al servidor.

Se llama a la siguiente función de javascript cuando se carga una página y se conecta a un servidor en ejecución con una identificación de conexión exitosa.

 function Connect() { $.connection.hub.url = url; stockTickerHubProxy = $.connection.mobileStockTickerHub; if (stockTickerHubProxy) { $.connection.hub.start().done(function () { console.log("Connected..."); connectionId = $.connection.hub.id; console.log(connectionId) stockTickerHubProxy.server.setUserName(code); }) .fail(function () { alert("Can't connect"); }) ; stockTickerHubProxy.client.addMessage = function (name, message) { console.log(name + ":" + message); } stockTickerHubProxy.client.showtradenotification = function (msg) { alert(msg) } $.connection.hub.disconnected(function () { console.log("Server disconnected."); }); $.connection.hub.reconnecting(function () { console.log("Server reconnecting..."); }); $.connection.hub.reconnected(function () { console.log("Server reconnected..."); Connect(); }); $.connection.hub.error(function (error) { console.log('SignalR error: ' + error) }); } }

En el servidor, estoy ejecutando el siguiente código de prueba para verificar la función que se ejecuta en la página HTML de JavaScript. A continuación se muestra el código.

 private async void button1_ClickAsync(object sender, EventArgs e) { mhubContext = GlobalHost.ConnectionManager.GetHubContext<MobileStockTickerHub>(); await mhubContext.Clients.All.showtradenotification("Hello"); }

La siguiente es la clase hub MobileStockTickerHub

 public class MobileStockTickerHub : Hub { //Called when a client is connected public override Task OnConnected() { _users.TryAdd(Context.ConnectionId, Context.ConnectionId); return base.OnConnected(); } public override Task OnDisconnected(bool stopCalled) { string username; _users.TryRemove(Context.ConnectionId, out username); return base.OnDisconnected(stopCalled); } public override Task OnReconnected() { _users.TryAdd(Context.ConnectionId, Context.ConnectionId); return base.OnReconnected(); } public string SetUserName(string userName) { _users[Context.ConnectionId] = userName; return "Received ping from " + userName; } }

Nuevamente, cuando se dispara button1_ClickAsync , no hay actividad en la página web, eso debería disparar showtradenotification con un mensaje de alerta.

Déjame saber dónde estoy equivocado. Gracias.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Mueva su función de cliente antes de su hub.start. Siempre debe registrar al menos una función antes de comenzar. Consulte la nota sobre en los documentos .

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda