SignalR 0.5.2 - Context.User имеет значение null при отключении

Недавно я обновился до SignalR 0.5.2 с 0.4.0 в своем приложении ASP.NET MVC3. В SignalR 0.5.2 свойство «Пользователь» в экземпляре контекста равно null, когда пользователь отключается - это намеренно?

Как видно из снимка «Немедленное окно» ниже, все, что я знаю о Context, когда клиент отключается, - это ConnectionId отключающегося клиента.

Context
{SignalR.Hubs.HubCallerContext}
    ConnectionId: "... some connection id ..."
    Headers: null
    QueryString: null
    RequestCookies: null
    ServerVariables: null
    User: null

В упрощенном виде моя реализация SignalR Hub выглядит так:

public class MyHub : Hub, IDisconnect, IConnected
{
    // some other code

    public Task Disconnect()
    {
        var user = Context.User; // <-- This is null
        // more code
    }
}

Подводя итог - я что-то здесь забыл или Context.User по дизайну является null? А если так - почему? :)


person Lasse Christiansen    schedule 17.07.2012    source источник


Ответы (1)


Я нашел ответ в вики SignalR. В своем разделе о хабах (https://github.com/SignalR/SignalR/wiki/Hubs) в нем говорится:

Каждый раз, когда клиент отключается, метод Disconnect будет вызываться на всех концентраторах, реализующих IDisconnect. Когда этот метод вызывается, вы можете использовать Context.ConnectionId для доступа к клиенту, который отключился. ПРИМЕЧАНИЕ. Этот метод вызывается с сервера, это означает, что состояние объекта Caller, любое состояние, которое было с подключением, а также пользователь HubContext и файлы cookie не будут заполнены.

person Lasse Christiansen    schedule 18.07.2012