原文:Asp.Net SignalR Hub中的上下文对象
Hub中的 Context
使用了集线器后,会发现对比持久连接类少了OnConnectioned这样的事件,事实上是有的。需要我们去override
.这下似乎发现了什么问题,记得持久连接类中有connectionid与request参数,而这里什么都没有???如果有需求要拿到connectionid呢
事实上是不用去担心的,因为已经为我们封装了context上下文对象,在基类HubBase中可以看到,它是HubCallerContext类型的
F12去看一下这个类里面有什么东西,嗯 ConnectionId、Headers、QueryString…..等 都是我们可能会用到的
// ???// 摘要: ???// ????表示客户端的调用上下文。 ???public class HubCallerContext ???{ ???????// ???????// 摘要: ???????// ????初始化 Microsoft.AspNet.SignalR.Hubs.HubCallerContext 类的新实例。 ???????// ???????// 参数: ???????// ??request: ???????// ????当前的 HTTP 请求。 ???????// ???????// ??connectionId: ???????// ????连接 ID。 ???????public HubCallerContext(IRequest request, string connectionId); ???????protected HubCallerContext(); ???????// ???????// 摘要: ???????// ????获取调用客户端的连接 ID。 ???????// ???????// 返回结果: ???????// ????调用客户端的连接 ID。 ???????public virtual string ConnectionId { get; } ???????// ???????// 摘要: ???????// ????获取请求的标头。 ???????// ???????// 返回结果: ???????// ????请求的标头。 ???????public virtual INameValueCollection Headers { get; } ???????// ???????// 摘要: ???????// ????获取请求的查询字符串。 ???????// ???????// 返回结果: ???????// ????请求的查询字符串。 ???????public virtual INameValueCollection QueryString { get; } ???????// ???????// 摘要: ???????// ????为当前 HTTP 请求获取 Microsoft.AspNet.SignalR.IRequest。 ???????// ???????// 返回结果: ???????// ????当前 HTTP 请求的 Microsoft.AspNet.SignalR.IRequest。 ???????public virtual IRequest Request { get; } ???????// ???????// 摘要: ???????// ????获取请求的 Cookie。 ???????// ???????// 返回结果: ???????// ????请求的 Cookie。 ???????public virtual IDictionary<string, Cookie> RequestCookies { get; } ???????// ???????// 摘要: ???????// ????获取请求的 System.Security.Principal.IPrincipal。 ???????// ???????// 返回结果: ???????// ????请求的 System.Security.Principal.IPrincipal。 ???????public virtual IPrincipal User { get; } ???}
Asp.Net SignalR Hub中的上下文对象
原文地址:http://www.cnblogs.com/lonelyxmas/p/8044181.html