有没有办法通过signalR中的唯一指导正确地将消息发送给所有用户?

Posted

技术标签:

【中文标题】有没有办法通过signalR中的唯一指导正确地将消息发送给所有用户?【英文标题】:Is there a way to correctly send messages out to all users by unique guids in signalR? 【发布时间】:2019-06-21 02:22:42 【问题描述】:

SignalR 把我难住了!我有一个不断增长的项目列表......一旦在数据库中更新,我想让某些“关心”它的用户知道。

我真的不在乎他们是否在线。我只想向所有想了解更改的用户发送一条消息。如果他们在线,那么他们会看到它。如果不是,那么它稍后会显示在他们登录后看到的另一组通知中。

关于这些用户,我只有他们唯一的 guid(他们表中的主键),然后是信息,例如:姓名和电子邮件。

有没有办法在这种情况下通过更改我已有的信息来使用Clients.Users(list of users)

Clients.All.SendAsync 完美运行。我只需要真正确定这种情况。

我希望这足以让我走上正确的道路!

我正在使用 AspNetCore。

我必须使用的示例信息:

User1

UserGuid - b7c103d0-78c0-43de-aaa0-1a07cb0c8e46

FirstName - John

LastName - Doe

Email - john.doe@mail.com



User2

UserGuid - cd75274b-19bc-4b8b-8eca-89947959ab03

FirstName - Jane

LastName - Doe

Email - jane.doe@mail.com




User3

UserGuid - df8ede1b-dada-4eec-bc6c-f32b70bd8bd9

FirstName - Bob

LastName - Doe

Email - bob.doe@mail.com

我想做的是向 User1 和 User3 发送消息。如何确定 signalR 仅向他们触发消息所需的用户信息?我不想向所有人发送消息

【问题讨论】:

【参考方案1】:

您在这里有几个问题是基于其他一些知识得出的。

    有些用户关心 x、y 或 z。 - 您需要将您的用户与他们关心的内容相关联,例如在数据库表中。您如何知道这将取决于您如何创建/设置用户以及他们如何了解 x、y 或 z。

    如何将有关 x、y 或 z 的更新仅发送给关心它们的用户。 - 您可以使用群组。当用户登录时,获取他们关心的内容并将其添加到该组。当他们注销时,从组中删除。您可以使用 Client.Groups("x").method(message) 发送给他们,其中“x”是组的名称。这将发送给该​​组的每个成员。

    如果他们不在线,稍后会显示。 - 这需要将您的消息和应分配到的组存储在数据库中。它变得更加棘手,因为现在您还必须跟踪用户 1、2 或 3 是否看到了特定消息。你可能需要在这部分做一些额外的研究。但是 Google 和 Stack 可以提供很多服务。

【讨论】:

以上是关于有没有办法通过signalR中的唯一指导正确地将消息发送给所有用户?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法通过css慢慢地将字母添加到文本中? [关闭]

在win 7下部署signalR程序,有没有办法让其支持websocket

如何正确地将静态“正确细节”UITableViewCell 内容与图像对齐?

SignalR 通过 K8S Ingress 连接

Xamarin.IOS 和 Signalr 推送通知

有没有办法轻松地将大量依赖 SqlConnection 的代码切换到 MySqlConnection