SignalR是适用于.NET的观察者模式实现库

6
到目前为止,我已经阅读了很多解释SignalR的文章。通过搜索,可以得到一个简单的定义:SignalR可用于开发实时Web应用程序。
根据维基百科上的说法:实时Web应用程序是一组技术和实践,使用户能够在作者发布信息后立即接收信息,而不需要定期检查源以获取更新。
看起来SignalR类似于观察者/发布者和订阅者模式,其中客户端订阅服务器,如果事件发生,则服务器向所有客户端发送通知。
因此,我的问题是: 1)SignalR是否基于消息传递模式(即观察者/发布者和订阅者)?
2)如果是,那么为什么还需要另一种消息传递模式SignalR,当我们已经有现有的模式了呢?
3)SignalR相对于消息传递模式(观察者/发布者和订阅者)的优势是什么?

我也会考虑Comet服务器实现,更多细节请参见此问题https://dev59.com/v2LVa4cB1Zd3GeqPw390 - Rus
3
SignalR 是一种实现,而不是抽象模式。 - Foole
1个回答

8
这个问题已经没有被回答了将近4年!SignalR是微软推荐的实时应用程序开发解决方案。Http请求/响应模型需要客户端调用服务器才能从服务器获取响应。但是,SignalR允许服务器向客户端推送消息,而无需客户端频繁轮询服务器。
答案1:是的,它有观察者/订阅者模式的实现。客户端需要首先订阅服务器事件。然后,服务器广播(或可以向每个客户端发送消息)给客户端。
答案2和3:如果您需要向客户端推送通知(例如fb通知、事件日志等),那么这将是理想的选择。在.Net技术栈中,没有其他类似于SignalR的技术可以更有效地完成这项工作。
请参考这个股市示例应用程序,了解它如何实时生成服务器事件并传递给客户端。多人游戏和在线聊天是一些其他有用的情况。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接