Прежде всего, вы можете начать читать документацию Microsoft о группах. Затем вы можете прочитать документацию по авторизации , чтобы иметь возможность создавать группы и управлять пользователями для каждой роли.
Что вы можете сделать, это когда клиент подключается к концентратору и предполагает, что Вы знаете роль пользователей (используя контекст и авторизацию), и вы добавите их в эти 3 группы.
Тогда легко отправить сообщение этим группам, у вас есть такие примеры везде в stackOverflow и в inte rnet.
Надеюсь, это вам поможет.
Пример кода:
/// <summary>
/// Called when a new connection is established with the hub.
/// </summary>
/// <returns>A <see cref="Task"/> representing the asynchronous operation.</returns>
public override async Task OnConnectedAsync()
{
// 1. Add the use to the public group
await this.Groups.AddToGroupAsync("PublicGroup", this.Context.ConnectionId);
// 2. Add user to the private channel, single person
await this.Groups.AddToGroupAsync(this.Context.User.Identity.Name, this.Context.ConnectionId);
if (this.Context.User.IsInRole("Admin"))
{
// 3. Add the user to the Admin group
await this.Groups.AddToGroupAsync("Admin", this.Context.ConnectionId);
}
// add to other groups...
await base.OnConnectedAsync();
}