Я вижу много вопросов, связанных с установлением соединения сигнализатора пр.пользователь, но я бы хотел соединение пр.сессия.Таким образом, у одного и того же пользователя может быть открыто несколько браузеров / вкладок с эксклюзивным подключением к каждому.
Так что моя проблема в том, что использование пользователя является слишком широким, но я также не могу использовать идентификатор сессии, потому что меняетсяпараrequest
Моя лучшая ставка - использовать куки-файлы, которые также намекаются в нижней части этого вопроса
Но как мне сопоставить и сопоставить конкретную сессиюк его идентификатору подключения и найти правильный снова?Связанный вопрос отображает пользователя ..
Мой класс-концентратор упрощен:
public class MessageSender : Hub, IMessageSender
{
private readonly IHttpContextAccessor _httpContextAccessor;
public MessageSender(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}
public override Task OnConnectedAsync()
{
Groups.AddToGroupAsync(Context.ConnectionId, _httpContextAccessor.HttpContext.Request.Cookies["SomeCookieCreatedForSessionX"]);
return base.OnConnectedAsync();
}
public async Task SendMessage(string message)
{
await Clients.Group(_httpContextAccessor.HttpContext.Request.Cookies["SomeCookieCreatedForSessionX"]).SendAsync("initMessage", message, connectionId);
}
}
другой вызывающий класс:
public async Task<IActionResult> Submit(Dictionary<string, string> inputs)
{
await _messageSender.SendMessage("Job Started something something.."]);
// return etc.
}
Как сопоставить / сопоставить сеанс X сИдентификатор соединения?
Спасибо