在类中实现IhttpHandler和IConnectionIdFactory(SignalR)

时间:2013-01-23 10:45:21

标签: c# asp.net session signalr ihttphandler

我有一个班级SignalRConnection。在这里,我想为signalR生成一个connectionId。 如果会话为null,我想要一个新的连接Id,否则返回相同的连接。我试图实现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配置的配置文件。我希望从ProcessRequest生成conId而CreateConnectionId为{{1}提供服务到SignalR Connection.Can它可以获得,或者我正朝着错误的方向前进。

0 个答案:

没有答案