我一直在寻找可以执行类似操作的服务,通知用户(特定用户)他们有新的好友请求。我遇到了 SingalR,并认为这可能对我的应用程序有用。我看到很多 SignalR 的示例和实时使用都是聊天应用程序,这是有道理的。无论如何,这就是我要在这里完成的事情。我有一个使用 RavenDB 作为数据存储的 MVC 社交应用程序,一个用户可能会请求与另一个用户建立友谊,我想实时更新该客户端他们有一个新请求(每 X 秒检查一次)。我要么正在寻找一个好的 SignalR 示例,要么正在寻找可能为我指明正确方向的文档(希望是示例),或者是比 SignalR 更适合我的应用程序的良好服务。感谢您的任何回答。
问问题
395 次
1 回答
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 使用的)和然后从数据库中检索数据并使用该数据向用户发送更新。
希望这可以帮助!
于 2013-01-23T00:43:54.563 回答