lunes, 6 de febrero de 2017

SignalR - Comunicación Server <--> Client en tiempo real


Implementando SignalR en ASP.NET MVC (Diego Bersano)

Ademas de lo mencionado en al post, para que funcione el SignalR en el cliente hay que modificar el web.config y agregar en <system.web> la linea
 <httpRuntime targetFramework="4.5" />

En los Hubs, en cáda metodo, en vez de llamar a los clientes asi:
Clients.All.metodo(param1, param2);
hay que hacerlo de la siguiente manera:
var context = GlobalHost.ConnectionManager.GetHubContext<UtilHub.NotificationHub>();
context.Clients.All.metodo(param1, param2);


Single-user groups

Para  optimizar la comunicación y poder responder al cliente que hizo la llamada y además funcione para varias ventanas simultáneas, conviene crear un grupo por cada usuario. Link.

Comandos comunes del lado del SERVIDOR


  • Context.ConnectionID  --> Toma ID Cliente
  • context.Clients.Client(ClientID).XXXX --> Ejecuta el método XXXX en un cliente específico


Comandos comunes del lado del CLIENTE

  • $.connection.hub.id --> devuelver el ID Cliente
  • $.connection.hub.logging  --> muestra log de la conexión