Реализация 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 для получения рекомендаций по лучшим способам получить то же самое поведение.