在类中实现 IhttpHandler 和 IConnectionIdFactory(SignalR)
本文关键字:IConnectionIdFactory SignalR IhttpHandler 实现 | 更新日期: 2023-09-27 17:55:14
我有一个类SignalRConnection
.在这里,我想为 signalR 生成一个连接 ID。如果会话为空,我想要一个新的连接 ID,否则返回相同的连接。我尝试实现IhttpHandler以获取类中的上下文和connectioId的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
将ConnectionId
提供给 SignalR 连接。是否可以获取它,或者我的方向错误。
IConnectionFactory 在最新版本的 SignalR 中不再受支持。 请参阅 SignalR 1.0 测试版连接工厂,了解有关获取相同行为的更好方法的建议。