您的位置:首页 > 编程语言 > ASP

Asp.Net SignalR Hub中的上下文对象

2017-01-24 18:28 253 查看

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; }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: