在上下文中按 ID 查找 SignalR 客户端

2024-02-08

所以我想通过 SignalR 向特定客户端发送消息。该客户端不是 Clients.Caller - 目前我只能通过将其称为“ID”(上下文中的一个属性)来识别它:this.Context.Items["ID"]

那么要通过 ID 查找客户端,我该如何...访问所有客户端或上下文?或者我应该以不同的方式保存这个ID?这不是连接 ID,它是映射到数据库中某些内容的 ID。

基本上我想去Clients.Single(c => c.Items["ID"] == specificId).SendMessage(msg);


在中心的 OnConnectedAsync 方法中,您可以在每次连接时按用户的“ID”对用户进行分组。

E.G:

public async override Task OnConnectedAsync()
{
    var currentUserId = /*get your current users id here*/
    await Groups.AddToGroupAsync(Context.ConnectionId, $"user-{currentUserId}");
    await base.OnConnectedAsync();
}

然后,当您需要向该人发送消息时,您可以将其广播到他们的“个人”群组。 (一个人可能有多个联系,因此小组方法非常适合我们)。

E.G:

Clients.Group($"user-{userId}").SendAsync("UserSpecificMessage", message);

当用户断开连接时,SignalR 将自动处理从组中删除连接的情况。

在使用这种方法时,我们不必向每个客户端广播一条消息,以便只有一个客户端根据 ID 过滤该消息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在上下文中按 ID 查找 SignalR 客户端 的相关文章

  • Unix网络编程澄清

    我正在翻阅这本经典书籍Unix网络编程 https rads stackoverflow com amzn click com 0139498761 当我偶然发现这个程序时 第 6 8 节 第 179 180 页 include unp h
  • 如何检查QProcess是否正确执行?

    QProcess process sdcompare QString command sdcompare QStringList args sdcompare command sdcompare diff args sdcompare lt
  • 如何将 #ifdef DEBUG 添加到 Xcode?

    我的项目中有一些代码永远不应该在发布版本中使用 但在测试时很有用 我想做这样的事情 ifdef DEBUG Run my debugging only code endif 在 Xcode 4 中哪里添加 DEBUG 设置 我尝试将其放入
  • 单元测试一起运行时失败,单独运行时通过

    所以我的单元测试遇到了一些问题 我不能只是将它们复制并粘贴到这里 但我会尽力而为 问题似乎是 如果我一项一项地运行测试 一切都会按预期进行 但如果我告诉它一起运行测试 则 1 5 将通过 TestMethod public void Obj
  • 在 C# 中循环遍历文件文件夹的最简单方法是什么?

    我尝试编写一个程序 使用包含相关文件路径的配置文件来导航本地文件系统 我的问题是 在 C 中执行文件 I O 这将是从桌面应用程序到服务器并返回 和文件系统导航时使用的最佳实践是什么 我知道如何谷歌 并且找到了几种解决方案 但我想知道各种功
  • 生成(非常)大的非重复整数序列而不进行预洗牌

    背景 我编写了一个简单的媒体客户端 服务器 我想生成一个不明显的时间值 随从客户端到服务器的每个命令一起发送 时间戳中将包含相当多的数据 纳秒分辨率 即使它不是真正准确 因为现代操作系统中计时器采样的限制 等 我想做的 在 Linux 上
  • 回发或回调参数无效。使用“”启用事件验证

    当我从客户端回发页面时 出现以下错误 我有修改客户端 asp ListBox 的 JavaScript 代码 我们该如何解决这个问题 错误详细信息如下 Server Error in XXX Application Invalid post
  • ASP.NET:获取自 1970 年 1 月 1 日以来的毫秒数

    我有一个 ASP NET VB NET 日期 我试图获取自 1970 年 1 月 1 日以来的毫秒数 我尝试在 MSDN 中寻找方法 但找不到任何东西 有谁知道如何做到这一点 从 NET 4 6 开始 该方法ToUnixTimeMillis
  • 使用 JNI 从 Java 代码中检索 String 值的内存泄漏

    我使用 GetStringUTFChars 从使用 JNI 的 java 代码中检索字符串的值 并使用 ReleaseStringUTFChars 释放该字符串 当代码在 JRE 1 4 上运行时 不会出现内存泄漏 但如果相同的代码在 JR
  • PlaySound 可在 Visual Studio 中运行,但不能在独立 exe 中运行

    我正在尝试使用 Visual Studio 在 C 中播放 wav 文件 我将文件 my wav 放入项目目录中并使用代码 PlaySound TEXT my wav NULL SND FILENAME SND SYNC 我按下播放按钮 或
  • 批量更新 SQL Server C#

    我有一个 270k 行的数据库 带有主键mid和一个名为value 我有一个包含中值和值的文本文件 现在我想更新表格 以便将每个值分配给正确的中间值 我当前的方法是从 C 读取文本文件 并为我读取的每一行更新表中的一行 必须有更快的方法来做
  • 如何将自定义 JSON 文件添加到 IConfiguration 中?

    我正在使用 asp net Autofac 我正在尝试加载自定义 JSON 配置文件 并基于该文件创建 实例化 IConfiguration 实例 或者至少将我的文件包含到默认情况下构建的 IConfiguration asp net 中
  • 等待线程完成

    private void button1 Click object sender EventArgs e for int i 0 i lt 15 i Thread nova new Thread Method nova Start list
  • .NET中的LinkedList是循环链表吗?

    我需要一个循环链表 所以我想知道是否LinkedList是循环链表吗 每当您想要移动列表中的 下一个 块时 以循环方式使用它的快速解决方案 current current Next current List First 电流在哪里Linke
  • 如何在按钮单击时模拟按键 - Unity

    我对 Unity 中的脚本编写非常陌生 我正在尝试创建一个按钮 一旦单击它就需要模拟按下 F 键 要拾取一个项目 这是我当前的代码 在编写此代码之前我浏览了所有统一论坛 但找不到任何有效的东西 Code using System Colle
  • 英特尔 Pin 与 C++14

    问题 我有一些关于在 C 14 或其他 C 版本中使用英特尔 Pin 的问题 使用较新版本从较旧的 C 编译代码很少会出现任何问题 但由于 Intel Pin 是操作指令级别的 如果我使用 C 11 或 C 14 编译它 是否会出现任何不良
  • memset 未填充数组

    u32 iterations 5 u32 ecx u32 malloc sizeof u32 iterations memset ecx 0xBAADF00D sizeof u32 iterations printf 8X n ecx 0
  • Linq-to-entities,在一个查询中获取结果+行数

    我已经看到了有关此事的多个问题 但它们已经有 2 年 或更长 的历史了 所以我想知道这方面是否有任何变化 基本思想是填充网格视图并创建自定义分页 所以 我还需要结果和行数 在 SQL 中 这将类似于 SELECT COUNT id Id N
  • 当另一个线程可能设置共享布尔标志(最多一次)时,是否可以读取共享布尔标志而不锁定它?

    我希望我的线程能够更优雅地关闭 因此我尝试实现一个简单的信号机制 我不认为我想要一个完全事件驱动的线程 所以我有一个工作人员有一种方法可以使用关键部分优雅地停止它Monitor 相当于C lock我相信 绘图线程 h class Drawi
  • 在客户端系统中安装后桌面应用程序无法打开

    我目前正在使用 Visual Studio 2017 和 4 6 1 net 框架 我为桌面应用程序创建了安装文件 安装程序在我的系统中完美安装并运行 问题是安装程序在其他计算机上成功安装 但应用程序无法打开 edit 在客户端系统中下载了

随机推荐

  • 如果删除的单元仍在其他单元中使用,那么如果我清理我的使用条款,会有什么不同吗?

    就我个人而言 我喜欢它 如果我的uses子句尽可能小 但在许多应用程序中 真正大的单元 就膨胀的可执行文件而言 就像Forms or VirtualTrees无论如何 至少另一个单位需要 所以 如果我清洁我的身体 会有什么不同吗 uses即
  • 在 R 中添加带有颜色和范围的图例

    以下示例代码根据以下值生成彩色点图a a lt sample 1 100 rbPal lt colorRampPalette c red blue b lt rbPal 10 as numeric cut a breaks 10 plot
  • python 的startswith 是如何工作的?

    我无法理解该行为str startswith https docs python org 3 library stdtypes html str startswith method 如果我执行 hello startswith 它返回 Tr
  • 线程会提高性能吗?

    我有一个这样设置的程序 它是一个 Net Framework 4 控制台应用程序 该程序用于从每台服务器上的每个日志文件 上周 收集 sc 字节和 cs 字节 该程序已完成 但运行时间很长 foreach string server in
  • 在 Rails 3 中编写自定义验证器

    我正在尝试编写一个自定义验证器来检查输入到文本字段中的单词数 我试图效仿 Railscasts 第 211 集中的例子 http railscasts com episodes 211 validations in rails 3 http
  • CSS margin 和 padding 简写属性的顺序助记符

    我永远记不起在一个声明中设置边距或填充的速记属性的顺序 那是 margin top 2px margin bottom 4px margin left 3px margin right 8px 可以写成 margin 2px 8px 4px
  • 如何在OpenCV中将某个RGB值的所有像素替换为另一个RGB值

    我需要能够用 OpenCV 中的另一种颜色替换具有特定 RGB 值的所有像素 我尝试了一些解决方案 但没有一个对我有用 实现这一目标的最佳方法是什么 太长了 使用 Numpy 将所有绿色像素设为白色 import numpy as np p
  • FXCop 自定义规则未显示在规则集中

    我按照此处的步骤创建了一个新的自定义规则并将其添加到 VSStudio 2013 中的规则集中 http blog tatham oddie com au 2010 01 06 custom code analysis rules in v
  • 在 Word 选项加载项对话框中设置发布者

    我使用 Visual Studio 2010 RTM 为 Microsoft Word 2010 Beta 制作了一个插件 当我查看 查看和管理 Microsoft Office 加载项 时 发布者显示为 无 使用软件发布者证书进行代码签名
  • jquery更改事件回调

    如何在之后调用函数一次change 活动完成了吗 例如 像这样 我知道 jQuery 默认没有回调方法 element change function do something on change milestonesSelect mult
  • 你能结合 docker 的单独构建吗?

    我正在使用circleci来部署应用程序 我部署到amd和arm架构 所以我的构建是多架构的 我一直在使用docker buildx 借助 Circleci 的新手臂支持 我能够将这个过程的时间从使用 quemu 的有时 3 小时缩短到大约
  • SQL Server 版本控制与 git 集成?

    我有一个 ERP 系统 由我的团队负责维护 然而最近我们似乎忘记了谁在改变什么 我们需要一个解决方案来控制这些变化 我们正在研究 GIT 的企业版 因为我们所有的软件开发和 Web 开发都可以与它完美配合 更不用说我已经有一些 GIT 经验
  • 获取所有 css 样式属性的访问权限?

    我想通过 JavaScript 访问所有 CSS 属性 不仅针对特定选择器或元素 而且针对所有属性 我想遍历所有属性 style收藏 我怎样才能做到这一点 您可以使用CSSStyleDeclaration object CSSStyleDe
  • Floyd Warshall 使用邻接表

    是否可以使用邻接表对 Floyd Warshall 进行编码 我必须处理文本文件中的一百万个顶点 因此邻接矩阵不是解决方案 已有可用的实施吗 请帮忙 您不能将 Floyd Warshall 与邻接列表一起使用 因为当它工作时 它会产生新的边
  • 为什么我的数据库没有更新?

    我的问题是 当我编辑数据网格中的单元格时 数据库没有更新 我使用的代码如下 Public Class Form9 Inherits System Windows Forms Form Dim sql As String SELECT FRO
  • |= 运算符在 C++ 中意味着什么?

    运算符在 C 中意味着什么 假设您在整数上使用内置运算符 或在用户定义的类上使用合理重载的运算符 则这些运算符是相同的 a a b a b The 符号是按位或赋值运算符 它计算右侧 b 与左侧 a 的 或 值 并将结果分配给 a 但在执行
  • 在类路径中查找重复的类

    我有一个使用 Maven 构建的 Java 应用程序 它有很多依赖项 当执行我的测试用例时 它们有时会很好地通过 有时会因为一些不兼容的类组合而失败 所以看来类路径中必须有一些类两次是随机选取的 一个很好 另一个则不好 如何找出我的类路径中
  • 计算三角形内的格点

    我有一个大三角形的点 我们称之为 a b c a x y 等 现在我想统计这个三角形围成的区域内有多少个积分点 所以我首先看一下皮克定理 我考虑的第二种方法是生成一个以三角形的最大值 最小值为界的点列表 然后检查每个点是否位于三角形内部 我
  • HDF5 是否支持并发读取或写入不同的文件?

    我试图了解 HDF5 并发的限制 HDF5 有两种版本 并行HDF5 and default 目前 Ubuntu 中提供了并行版本 Anaconda 中默认提供 通过判断 enable parallel flag 我知道并行写入同一文件是不
  • 在上下文中按 ID 查找 SignalR 客户端

    所以我想通过 SignalR 向特定客户端发送消息 该客户端不是 Clients Caller 目前我只能通过将其称为 ID 上下文中的一个属性 来识别它 this Context Items ID 那么要通过 ID 查找客户端 我该如何