Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

238
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda