Сигнальные сеансы сопоставления с идентификатором соединения - PullRequest
0 голосов
/ 24 марта 2019

Я вижу много вопросов, связанных с установлением соединения сигнализатора пр.пользователь, но я бы хотел соединение пр.сессия.Таким образом, у одного и того же пользователя может быть открыто несколько браузеров / вкладок с эксклюзивным подключением к каждому.

Так что моя проблема в том, что использование пользователя является слишком широким, но я также не могу использовать идентификатор сессии, потому что меняетсяпара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 сИдентификатор соединения?

Спасибо

...