ASP.Net中的SignalR 1.01集线器:跨页面存储组信息

jan*_*ank 0 asp.net sql-server-2008r2-express signalr

我目前正在构建一个SignalR应用程序(使用ASP.Net MVC4,在带有SQL Server 2008 R2 Express的IIS7上),用户进入大厅并放入组中,然后在不同的页面上进行交互.

Html5 LocalStorage是任何参与者的要求,因此我可以在客户端存储组信息.

关于SignalR组成员资格的应用程序设计我有两个问题:

  1. 在服务器上存储组成员身份的最佳方法是什么?单例变量,具有组和连接ID的数据库或不同的东西?数据库是SQL Server Express和大约100-200个用户的问题吗?

  2. 页面更改期间会发生什么变化和触发?我是否必须手动更新组成员身份,执行断开连接/重新连接,如果是,我可以区分这种类型的断开与用户离开吗?

Elg*_*des 5

  1. 我使用msopentech.redis.一个非常快速的缓存,它也会保留您的数据.(在谷歌上找到很多信息)您可以使用booksleeve(信号员团队也使用它)或servicestack.redis来访问它.这样您就不必将它放在静态变量或慢速数据库调用中.

  2. 随着同一站点上的每个页面更改,您将收到断开连接和连接.connectionID将是不同的,因此您应该使用某种机制将connectionid映射到登录用户并持久保存.也就是说,如果您希望能够发送单个消息而不是广播.