En el post anterior vimos las distintas formas que tenemos disponibles en SignalR para poder comunicarse con los clientes de la aplicación, siendo los grupos la forma más completa y compleja, y por lo tanto merecedora de su propio post 😉
Los grupos nos permiten concentrar varios clientes a través de un identificador global, lo cual nos permite poder comunicarnos con los mismos a demanda sin preocuparnos por los clientes en sí que están en el grupo, más allá del momento en el cual lo creamos. Esto nos permite separar la responsabilidad del uso de grupos en dos partes: administrar los grupos y comunicarse con los clientes que los componen.
Administrando los grupos
Comencemos por el primer punto, cómo crear un grupo y agregarle como integrante un cliente? Ambas cosas se hacen directamente en un mismo método, como se puede ver a continuación:
/// <summary> | |
/// Une al cliente al grupo especificado. | |
/// </summary> | |
/// <param name="groupName">Nombre del grupo.</param> | |
public void JoinToGroup(string groupName) | |
{ | |
Groups.Add(Context.ConnectionId, groupName); | |
} |
En el Hub de SignalR tenemos disponible el elemento Groups (al igual que Clients) sobre el cual podemos ejecutar la operación Add. En la misma deberemos pasar dos parámetros, el ConnectionId del cliente que queremos agregar al grupo y el nombre/identificador del mismo. Lo que pasará aquí internamente es que si no existe el grupo con el nombre indicado se creará el mismo y luego agregará el cliente. Cabe destacar que un cliente puede estar en todos los grupos que se requiera, o en ninguno.
Seguir leyendo “Grupos en SignalR: administración y opciones de comunicación”