如何通过SignalR Hub发送通知新消息到达用户

时间:2012-06-14 11:37:10

标签: asp.net-mvc asp.net-mvc-4 signalr

在我们的MVC 4网站中,我希望系统每次收到新消息时都会向用户发送通知。所以当我的数据库发生变化时(例如:一个新行被添加到表中),系统会向用户发送通知吗?

2 个答案:

答案 0 :(得分:2)

以下是执行此操作的步骤:

  1. 按照signalR wiki page上的说明创建名为myhub
  2. 的中心
  3. 对于每个连接,您都有一个可用于与userid相关的连接ID,或者甚至可以将username作为参数传递给hub方法。再次阅读上面的页面。您可以将任何参数添加到集线器上的方法。
  4. 在服务器和客户端上创建一个方法以通知newsmessage。
  5. Serverside方法应该使用连接ID或用户名参数。
  6. 客户端方法应该只填充新邮件部分或更新新邮件数。
  7. 当用户收到一条消息并且您已插入数据库或仅在集线器上接收它而没有任何持久性时,您可以通过连接ID将此消息发送到单个客户端。这次你可能不会发送完整的消息,只是发送messagecountupdate或newmessage excerpt。
  8. 上述内容将在客户和欢乐日期发布

    如果您需要现成的解决方案或工作示例,我建议在github上分叉现有的singalR repo或创建一个新的MVC 4应用程序并将其放在github上的项目中。在尝试过某些事情之后的任何问题将说服更多的人在这里帮助你。

答案 1 :(得分:0)

您可以从应用程序的任何位置从集线器发送消息。看着 “在https://github.com/SignalR/SignalR/wiki/Hubs

上从集线器外部广播中心”

基本上使用这种方法,您可以向所有客户发送通知..