Реализация IhttpHandler и IConnectionIdFactory(SignalR) в классе

У меня есть класс SignalRConnection, Здесь я хочу создать идентификатор соединения для signalR . Я хочу новый идентификатор соединения, если сеанс равен нулю, иначе верните то же соединение. Я пытался реализовать IhttpHandler для получения контекста в классе и IConnectionIdFactory для связи. Мой код такой:

>  public class SignalRConnection :  
    IHttpHandler,IConnectionIdFactory,IRequireSessionState                                
    {
        string conId;
        public bool IsReusable
        {
            get { return true; }
        }

        public void ProcessRequest(HttpContext context)
        {
            if (context.Session["activeuser_id"] != null)
            {
                conId = context.Session["activeuser_id"].ToString();
            }
            else
            {
                conId = Guid.NewGuid().ToString();
            }
        }
        public string CreateConnectionId(SignalR.Hosting.IRequest request)
        {
            return conId;
        }
        public string CreateConnectionId(SignalR.Hosting.IRequest request ,string test)
        {
            return conId;
        }
    }

проблема здесь заключается в CreateConnectionId выполняется только файл конфигурации, настроенный для httphandler. Я хочу, чтобы значение conId было сгенерировано из ProcessRequest и CreateConnectionId служить ConnectionId к Соединению SignalR. Может быть получено, или я направляюсь в неправильном направлении.

1 ответ

Решение

IConnectionFactory больше не поддерживается в последней версии SignalR. Посмотрите фабрику бета-соединений SignalR 1.0 для получения рекомендаций по лучшим способам получить то же самое поведение.

Другие вопросы по тегам