当前位置: 首页 > article >正文

ASP.NET Core 外部向SignalR的Hub发消息

实现

  1. Hub类中的方法只应该用于消息的发布,而不应该用来写业务逻辑,SignalR中客户端给服务器端传递消息的超时时间为30s,如果对Hub类中的方法的调用执行时间超过30s,程序就会报错。
  2. 可以在MVC控制器、托管服务等外部向客户端推送消息。
  3. 可以通过注入IHubContext<THub>来获取对集线器进行操作的服务。
private readonly IHubContext<MyHub> hubContext;

public DemoController(IHubContext<MyHub> hubContext)
{
    this.hubContext = hubContext;
}

[HttpGet]
public async Task<ActionResult> AddUser(string UserName, string Password)
{
    MyUser user = new MyUser
    {
        UserName = UserName
    };
    await userManager.CreateAsync(user, Password).CheckAsync();
    await hubContext.Clients.All.SendAsync("ReceivePublicMessage", $"{UserName}欢迎加入");
    return Ok();
}

IHubContext和Hub的区别

IHubContext接口和Hub类有区别,因此在IHubContext中不能调用Caller、Others等成员啊,所以不能向“当前连接的客户端”、“除了当前连接之外的其他客户端”推送消息。

在控制器等集线器的外部调用的IHubContext服务,这些请求并不在一个SignalR连接中,因此也就没有“当前SignalR连接”的概念。


http://www.kler.cn/a/542857.html

相关文章:

  • 服务器绑定 127.0.0.1 和 0.0.0.0 的区别
  • Mysql 函数解析
  • 《optee系统架构从入门到精通》
  • 【原创精品】基于Springboot3+Vue3的学习计划管理系统
  • C++:gtest的使用
  • PostgreSQL插件-pg_stat_statements-安装和使用
  • MT6835 21位 磁编码器 SPI 平台无关通用驱动框架 STM32
  • 3.4 学习UVM中的uvm_monitor类分为几步?
  • 【论文笔记】Are Self-Attentions Effective for Time Series Forecasting? (NeurIPS 2024)
  • 移植BOA服务器到GEC2440开发板
  • 图解72个机器学习基础知识点
  • Flink怎么保证Exactly - Once 语义
  • 大型语言模型(LLM)中的自适应推理预算管理:基于约束策略优化的解决方案
  • 人工智能与低代码如何重新定义企业数字化转型?
  • Windows11系统笔记本电脑真的关机了么
  • Ubuntu指令学习(个人记录、偶尔更新)
  • 利用爬虫获取1688商品详情的实战案例指南
  • android的Jetpack简介
  • JavaScript系列(70)--响应式编程进阶详解
  • 机器学习-使用大规模的平行语料
  • mysql学习笔记-锁
  • 畅聊deepseek-r1,SiliconFlow 硅基流动注册+使用
  • 基于YoloV11和驱动级鼠标模拟实现Ai自瞄
  • 鸿蒙oh-package.json版本号
  • 【数据结构】_堆的向上调整和向下调整建堆法
  • Lucene 中的并发错误:如何修复乐观并发失败