5

到目前为止,我已经阅读了很多解释 SignalR 的文章。

搜索得出一个简单的定义:SignalR 可用于开发实时 Web 应用程序

根据 wiki :实时 Web 应用程序是一组技术和实践,使用户能够在其作者发布信息后立即接收信息,而不是要求他们或他们的软件定期检查源以获取更新。

SignalR 似乎类似于观察者/发布者和订阅者模式,其中客户端订阅服务器,如果事件发生,服务器将通知发送给所有客户端。

所以我的查询是: 1) SignalR 是否基于消息传递模式(即观察者/发布者和订阅者)?

2)如果是,那么当我们已经有一个现有的消息模式 SignalR 时,为什么还要使用另一种消息模式 SignalR。

3) SignalR 与消息传递模式相比有哪些优势(观察者/发布者和订阅者)

4

1 回答 1

7

这个问题已经快4年没有回答了!SignalR 是 Microsoft 推荐的实时应用程序开发解决方案。Http 请求/响应模型要求客户端调用服务器以从服务器获取响应。但是 SignalR 允许服务器将消息推送到客户端,而无需客户端频繁轮询服务器。

答案 1。是的,这有观察者/订阅者模式实现。客户端需要先订阅服务器事件。然后服务器向客户端广播(或者它可以向每个客户端发送消息)。

回答 2 和 3。我会更实际地回答这个问题,如果您需要向客户端推送通知(如 fb 通知、事件日志等),这将是理想的。.Net 技术堆栈中没有其他类似 SignalR 的技术,它更有效地做到了这一点。

请参阅此Stock Market示例应用程序,它如何生成服务器事件并实时传递到客户端。多人游戏和在线聊天是其他一些有用的案例。

于 2016-02-06T23:55:27.627 回答