Я имею в виду следующий поток:
Веб-приложение .NetCore, в котором вы можете создать несколько групп в концентраторе. Мобильное приложение, в котором пользователь может присоединиться к группе, передав ей имя группы. Веб-приложение может отправлять сообщения групповым пользователям.
Я могу создавать группы и присоединяться к ним из веб-приложения, но я не уверен, что это возможно сделать через контроллер.
Концентратор:
public class VotingHub : Hub
{
public async Task JoinGroup(string groupName)
{
await Groups.AddToGroupAsync(Context.ConnectionId, groupName);
await SendMessageToGroup(groupName , $"{ Context.ConnectionId} has joined the group { groupName}.");
}
public async Task SendMessageToGroup(string groupName, string message)
{
await Clients.Group(groupName).SendAsync("ReceivedMessage", message);
}
}
Контроллер:
public class EventsController : Controller
{
private IHubContext<VotingHub> _hubContext;
public EventsController(IHubContext<VotingHub> hubContext)
{
_hubContext = hubContext;
}
[HttpGet("/join")]
public IActionResult JoinGroup(string groupName)
{
_hubContext.Groups.AddToGroupAsync(** I do not have access to ConnectionId**);
return Ok();
}
}
Если это невозможно, какой будет альтернатива для реализации описанного выше потока?