Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

239
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!