在我的MVC应用程序中使用SignalR以实时获取用户的最新信息

时间:2013-01-22 20:40:38

标签: c# asp.net-mvc ravendb signalr

我一直在寻找可以做类似事情的服务,通知用户(特定用户)他们有新朋友请求。我遇到了SingalR,并认为这可能对我的应用程序有用。我看到很多示例和SignalR的实际使用是聊天应用程序,这是有道理的。无论如何,这里是我想要在这里完成的。我有一个使用RavenDB作为数据存储区的MVC社交应用程序,用户可以请求与另一个用户的友谊,我想实时更新该客户端他们有一个新请求(每隔X秒检查一次)。我要么寻找一个好的SignalR示例,要么是文档(希望是示例)可能指向我正确的方向,或者除了SignalR之外的更好的服务,更适合我的应用程序。谢谢你的回答。

1 个答案:

答案 0 :(得分:1)

SignalR绝对适合您的应用。例如,JabbR(http://jabbr.net/,https://github.com/davidfowl/JabbR)可能是一个聊天室,但它不断向数据库伸出手来更新/检索其记录。

对于您的情况,我建议在数据库写入时排队命令以通知其他用户而不是定期检查。意思是说用户A请求与用户B成为朋友。首先,请求被写入数据库,然后通过SignalR向所有相关方广播消息。

但是,如果您仍希望每X秒执行一次计时器检查,这仍然是可能的。参见ShootR(shootr.signalr.net,https://github.com/NTaylorMullen/ShootR),这是一款多人游戏,它利用游戏计时器并在检测到时发出冲突。授予ShootR在服务器上以更高的间隔(50+次/秒)进行计算,它基本上是相同的。

因此,如果你想检查每个Xs的方法我建议采用两个项目的混合(JabbR& ShootR)并实现一个线程计时器(而不是用于高频更新的自定义计时器,这是什么ShootR使用)然后从数据库中检索数据并使用该数据向用户发送更新。

希望这有帮助!