SignalR让我感到难过!我有一个增长中的项目的清单...一旦在数据库中进行更新,我想让某些“关心”它的用户知道。
我真的不在乎他们是否在线。我只想向所有想知道更改的用户发送一条消息。如果他们在线,那么他们会看到它。如果不是,则稍后会在登录后看到的另一组通知中显示。
关于这些用户,我所拥有的只是他们的唯一指导(表中的主键),然后是信息,例如:姓名和电子邮件。
在这种情况下,是否可以通过更改我已经拥有的信息来使用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仅向他们触发消息所需的用户信息?我不想向所有人发送消息
答案 0 :(得分:0)
您在这里有几个问题,这些问题是根据其他一些知识而精简的。
某些用户关心x,y或z。 -您需要将用户与他们关心的内容相关联,例如在数据库表中。您如何知道的将取决于您如何创建/设置用户以及他们如何了解x,y或z。
如何仅向关心它们的用户发送有关x,y或z的更新。 -您可以使用群组。用户登录后,获取他们关心的内容并将其添加到该组中。他们注销后,将其从组中删除。您可以使用Client.Groups(“ x”)。method(message)发送给他们,其中“ x”是组的名称。这将发送到该组的每个成员。
如果他们不在线,请稍后显示。 -这需要将您的消息和分组存储在数据库中。这变得比较棘手,因为现在您还必须跟踪用户1、2或3是否看到了特定消息。您可能需要对此部分做一些其他研究。但是Google和Stack可以提供很多服务。