• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

313
Views
Invocar el método SignalR Hub cuando se llama a una función de JavaScript en el lado del cliente

He escrito el siguiente código para establecer la conexión con el servidor SignalR e invocar un método concentrador:

 <script> var connection = new signalR.HubConnectionBuilder().withUrl("/signalRServer").withAutomaticReconnect().build(); connection.start().then( result => { console.log("RealTime connection is now established") }); function ShowMessageAndUpdate(messageId, data){ $('#messageModal').modal('show'); $('#mainTxt').text(data); var formData2 = new FormData(); formData2.append("messageId", messageId); $.ajax({ type: "POST", url: "Messages/UpdateMessageStatus", contentType: false, processData: false, data: formData2, success: function (response) { if (response.success) { console.log("status changed successfully!"); var table2 = $('#table2').DataTable(); table2.ajax.reload(); connection.invoke("MessageUpdate", messageId).catch(function(err){ return console.error(err) }); } else { console.log("status change failed."); } }, error: function (error) { console.log(error); } }); } </script>

El método hub se invoca cuando la respuesta exitosa de jQuery es True . El problema es que la consola no puede establecer una conexión con el concentrador.

Mensajes: 377 Error: no se pudo invocar 'MessageUpdate' debido a un error en el servidor. en H. (signalr.js:1:13973) en LI (signalr.js:1:14804) en XLconnection.onreceive (signalr.js:1:10649) en WebSocket.r.onmessage (signalr.js:1:27565 )

¿Hay algún problema con mi código del lado del cliente?

Actualización: el método en el concentrador es el siguiente:

 public async Task MessageUpdate(int messageId) { int destination = _messageRepository.GetSenderIdByMessageId(messageId); string username = _userRepository.GetUserNameById(destination); var userId = NtoIdMappingTable.GetValueOrDefault(username); await Clients.User(userId.FirstOrDefault()).SendAsync("ReceiveMessageUpdate"); }

El problema está en el lado del cliente, porque el método no se ejecuta durante la depuración. la conexión no se puede establecer correctamente cuando obtiene el parámetro de function(parameter) .

about 3 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error