我阅读了一些有关在SignalR应用中使用内存存储的文档。
http://www.asp.net/signalr/overview/guide-to-the-api/mapping-users-to- connections #inmemory
我相信您可以使用静态集合来保存您需要在集线器中处理的对象。是否可以从集线器外部访问此静态集合?如果应用程序中有其他对象需要在内存存储中访问它,那么最佳做法是什么?
答案 0 :(得分:2)
最佳做法是让Hub仅作为Hub,不管任何类型的业务逻辑。也不要从你的核心逻辑类调用hub客户端方法,这是高度耦合的并且是不好的做法。使用您自己的代码或使用库来抽象Hub,我已经创建了基于事件聚合模式的抽象库。
http://andersmalmgren.com/2014/05/27/client-server-event-aggregation-with-signalr/
答案 1 :(得分:1)
只需将Static集合公开并像访问任何其他静态集合一样访问它。当应用程序关闭时,该集合将丢失,因此需要在某处需要存储持久存储。