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中的上下文对象的更多相关文章
- Asp.Net SignalR Hub类中的操作详解
Hub类中的操作 在服务端我们要通过Hub类做一系列操作,下面就说说我们都可以做什么操作 客户端的发送消息操作 调用所有的客户端的helloClient方法 Clients.All.helloClie ...
- Asp.Net SignalR Hub集线器
集线器Hub类 使用持久连接类去开发是有些困难的,因为基于事件的开发方式,我们可以进行操作的地方也仅仅只是OnReceived事件内,这有些像websocket的方式.我们迫切的需要一种更人性化,更为 ...
- JS 中 this上下文对象的使用方式
JavaScript 有一套完全不同于其它语言的对 this 的处理机制. 在五种不同的情况下 ,this 指向的各不相同. 有句话说得很在理 -- 谁调用它,this就指向谁 一.全局范围内 在全局 ...
- [译] ASP.NET 生命周期 – ASP.NET 上下文对象(五)
ASP.NET 上下文对象 ASP.NET 提供了一系列对象用来给当前请求,将要返回到客户端的响应,以及 Web 应用本身提供上下文信息.间接的,这些上下文对象也可以用来回去核心 ASP.NET 框架 ...
- Asp.Net Core 轻松学-使用MariaDB/MySql/PostgreSQL和支持多个上下文对象
前言 在上一篇文章中(Asp.Net Core 轻松学-10分钟使用EFCore连接MSSQL数据库)[https://www.cnblogs.com/viter/p/10243577.html],介 ...
- EF上下文对象线程内唯一性与优化
在一次请求中,即一个线程内,若是用到EF数据上下文对象,就创建一个,这也加是很多人的代码中习惯在使用上下文对象时,习惯将对象建立在using中,也是为了尽早释放上下文对象, 但是如果有一个业务逻辑调用 ...
- Asp.Net SignalR 使用记录 技术回炉重造-总纲 动态类型dynamic转换为特定类型T的方案 通过对象方法获取委托_C#反射获取委托_ .net core入门-跨域访问配置
Asp.Net SignalR 使用记录 工作上遇到一个推送消息的功能的实现.本着面向百度编程的思想.网上百度了一大堆.主要的实现方式是原生的WebSocket,和SignalR,再次写一个关于A ...
- WinForm中 Asp.Net Signalr消息推送测试实例
p{ text-align:center; } blockquote > p > span{ text-align:center; font-size: 18px; color: #ff0 ...
- 【无私分享:ASP.NET CORE 项目实战(第二章)】添加EF上下文对象,添加接口、实现类以及无处不在的依赖注入(DI)
目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 上一章,我们介绍了安装和新建控制器.视图,这一章我们来创建个数据模型,并且添加接口和实现类. 添加EF上下文对象 按照我们以前 ...
随机推荐
- 爬虫之requests模块
requests模块 什么是requests模块 requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求.功能强大,用法简洁高效.在爬虫领域中占据着半壁江山的 ...
- 使用SQL-Front启动MySQL8.0报错
这学期学习数据库,电脑上分别装有phpStudy(自带的MySQL版本为5.5)和MySQL8.0.11,于是想用phpStudy中的SQL Front连接到8.0的数据库.手动开启8.0的MySQL ...
- UWB DWM1000 跟随小车原理--- 原理代码解析
之前在上一篇博文中解释过UWB 跟踪小车原理,这里解释下具体实现方法
- iOS 上传自己的工程(模块工具类)到cocoapods上遇到坑
最近在研究把自己写的工具类和模块上传到cocoapods上, 再新构建项目中可以直接使用cocoapods使用 也可以更新之前的版本 便于维护项目. 但是在这个过程中遇到了种种问题 但是最后还是解决 ...
- c# asp.net mvc4 使用uploadify插件实现上传功能
[1]首先去官网下载插件:http://www.uploadify.com/download/ .ww我使用的是免费的,基于flash的版本.因为基于H5的版本需付费使用,然后使用该插件也就是做做毕设 ...
- CSS水平垂直居中!
总结一下,最经典的面试题 分两种情况,宽高确定和不定宽高 (一)宽高确定 初始条件如下: 1. 绝对定位 + 负margin 里面的盒子相对于父盒子绝对定位,距离上面和左边分别为50%,此处的50%是 ...
- git如何避免push/pull时输入密码
今天在搭建git服务器的时候,一切顺利,但是就是在git push的时候老是要输入密码,太烦了,然后百度搜索了一下,总结了主要有如下三种方法: 方法1 git config --global cred ...
- 让webstorm里提示nodejs智能补全
webstorm里是默认没有nodejs只能提示的, 比如,输入requ到现在还不提示出require这个函数名,非常不方便. 设置方式: file --> setting -->edi ...
- HTTP/2 资料汇总
随着今年 5 月 14 日 HTTP/2 协议正式版的发布,越来越多的网站开始部署 HTTP/2 了.我对 HTTP 协议一直都比较有兴趣,本文汇总一些关于 HTTP/2 的资料以及我写过的文章,会持 ...
- Java实现桶排序和基数排序
桶排序代码: import java.util.Arrays; /** * 桶排序 * 工作的原理是将数组分到有限数量的桶里 * 每个桶再分别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序 ...