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

简介: 原文:Asp.Net SignalR Hub中的上下文对象Hub中的 Context 使用了集线器后,会发现对比持久连接类少了OnConnectioned这样的事件,事实上是有的。需要我们去override .
原文: Asp.Net SignalR Hub中的上下文对象

Hub中的 Context

使用了集线器后,会发现对比持久连接类少了OnConnectioned这样的事件,事实上是有的。需要我们去override

image

.这下似乎发现了什么问题,记得持久连接类中有connectionid与request参数,而这里什么都没有???如果有需求要拿到connectionid呢

image

事实上是不用去担心的,因为已经为我们封装了context上下文对象,在基类HubBase中可以看到,它是HubCallerContext类型的

image

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; }
    }
目录
相关文章
|
容器
.NET Core-作用域与对象释放行为详解
.NET Core-作用域与对象释放行为详解
|
3月前
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
75 0
|
5月前
|
开发框架 JSON 前端开发
利用查询条件对象,在Asp.net Web API中实现对业务数据的分页查询处理
利用查询条件对象,在Asp.net Web API中实现对业务数据的分页查询处理
|
6月前
|
开发框架 .NET API
ASP.NET Core Web中使用AutoMapper进行对象映射
ASP.NET Core Web中使用AutoMapper进行对象映射
|
存储 开发框架 .NET
ASP.NET Core SignalR系列之Hub教程
ASP.NET Core SignalR系列之Hub教程
242 0
|
7月前
|
C#
.NET开发中合理使用对象映射库,简化和提高工作效率
.NET开发中合理使用对象映射库,简化和提高工作效率
196 0
|
JSON 数据格式
.NET Core - 配置绑定:使用强类型对象承载配置数据
.NET Core - 配置绑定:使用强类型对象承载配置数据
|
容器
.NET Core作用域与对象释放行为详解
上节,我们提到,容器中有3种不同生命周期,分别是Singleton、Scoped和Transient。那么,你知道这3种类型的对象的释放时机和坑吗?
|
移动开发 开发框架 网络协议
WPF+ASP.NET SignalR实现动态折线图
WPF+ASP.NET SignalR实现动态折线图
145 0
|
存储 开发框架 .NET
WPF+ASP.NET SignalR实现后台通知
WPF+ASP.NET SignalR实现后台通知
138 0