SignalR 和 Pusher 之间的区别

2024-03-26

我想使用 React 作为前端技术创建一个 Web 应用程序。该应用程序的要求是服务器能够向所有客户端更新有关更改的信息(不必是精确的实时时间,但应在不超过 10 秒后更新)。

像客户端每隔几秒向服务器请求更新这样的解决方案是不可能的。

要求:

1) 服务器应该使用 .NET 或 Node.js 来实现。

2) 必须通过 IIS 的端口 443 确保连接的安全。

我读了一些关于微软的内容SignalR以及关于Pusher Channels这似乎提供了我所需要的服务。

您能详细说明一下它们之间到底有什么区别吗?我什么时候应该选择每一个?他们中谁得到了更多的社区支持?哪个更容易实施?像这样的东西...


SignalR 和 Pusher Channels 最终都使用 websocket 向客户端传递消息,因此两者都应该满足您向客户端实时传递消息的要求。

1) 这两种产品也满足您对两个库支持的要求:

SignalR 支持 .NET:

https://dotnet.microsoft.com/apps/aspnet/signalr https://dotnet.microsoft.com/apps/aspnet/signalr

Pusher Channels 为 Nodejs 和 .NET 提供服务器支持:

https://github.com/pusher/pusher-http-node https://github.com/pusher/pusher-http-node

https://github.com/pusher/pusher-http-dotnet https://github.com/pusher/pusher-http-dotnet

2) 这两种产品还满足您通过 TLS/WSS 发送消息的要求:

SignalR:

https://kimsereyblog.blogspot.com/2018/07/signalr-with-asp-net-core.html https://kimsereyblog.blogspot.com/2018/07/signalr-with-asp-net-core.html

推杆通道:

保护 Pusher 消息的安全 https://stackoverflow.com/questions/57901908/securing-pushers-messages

就它们之间的差异而言,这取决于您的实现,如果您只是在自己的 ISS 服务器上运行 SignalR,那么您将需要管理所有 Websocket 连接以及随之而来的所有扩展挑战。

然而,与 Channels 的工作方式类似,SignalR 也有托管的 websocket 服务,因此您不需要管理连接或扩展。您只需使用要发送到 Channels 或 SignalR 的消息发出 API 请求,然后该消息将广播到通过 Websocket 连接的感兴趣的客户端。在这种情况下,您不需要自己管理 websocket 连接。

然而,就定价而言,渠道似乎更具竞争力(尤其是免费产品),因此,如果您正在考虑托管产品,渠道似乎是一个更好的价值主张:

https://azure.microsoft.com/en-gb/pricing/details/signalr-service/ https://azure.microsoft.com/en-gb/pricing/details/signalr-service/

https://pusher.com/channels/pricing https://pusher.com/channels/pricing

两种产品在实现方面看起来非常相似(假设您使用的是托管服务)。如果您在 ISS 上实施 SignalR,复杂性会增加:

https://learn.microsoft.com/en-us/aspnet/core/signalr/scale?view=aspnetcore-2.2 https://learn.microsoft.com/en-us/aspnet/core/signalr/scale?view=aspnetcore-2.2

在支持方面,Pusher 提供免费的应用程序支持:

https://support.pusher.com/hc/en-us https://support.pusher.com/hc/en-us

希望这可以帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SignalR 和 Pusher 之间的区别 的相关文章

  • 过滤传出 SignalR Core Hub 消息

    我正在使用 SignalR 和 Net 5 0 并利用集线器过滤器 https learn microsoft com en us aspnet core signalr hub filters view aspnetcore 5 0对我的
  • SignalR 中消息的最大限制

    我正在尝试通过 SignalR 发送通知 它工作完美 但是我们可以通过 SignalR 发送的消息的最大大小是多少 官方有这样的限制吗 https github com SignalR SignalR issues 1205 https g
  • 如何将 Angular.js 与 Pusher 或 PubNub 等实时消息服务集成?

    是否可以将 Pusher 或 PubNub 定义为 Angular 服务 有人有这种集成的代码示例吗 有人已经做到了 http jsfiddle net bv5Kq 13 http jsfiddle net bv5Kq 13 请务必查看 w
  • 如何保留 SignalR 连接 ID

    我正在尝试构建一个聊天应用程序 其中用户 ID 由其自动生成的 signalR 连接 ID 表示 页面刷新时 实例化新连接时连接 ID 会发生变化 有没有办法持久保存用户连接 ID 的状态 直到浏览器会话结束 即直到他结束客户端上的会话 有
  • SignalR hub 中的上下文为空

    我有一个 Web 表单应用程序并进行测试 以了解 SignalR 如何满足我的要求之一 我的中心代码 using System using System Collections Generic using System Linq using
  • 请求线程外部的 ASP.NET Core RC2 SignalR Hub 上下文

    我目前正在尝试RC2释放ASP NET Core我遇到了一个问题SignalR 我需要能够在请求线程之外向客户端发送消息 现在 在完整的 NET 框架中 您可以执行以下操作 var context GlobalHost Connection
  • SignalR 客户端无法在 AngularJs 控制器内工作

    我已经根据路线创建了 Angular 应用程序 在不使用路由的情况下 信号器工作正常 但是当我使用路由时 信号器仅以一种方式工作 从客户端到服务器 Scripts a href Today Today a a href History Hi
  • 如何在docker镜像中运行signalr blazor客户端的StartAsync连接?

    我创建了默认的 blazor 服务器端应用程序 然后添加Microsoft AspNetCore SignalR Client and ChatHub班级 然后编辑startup cs文件 添加services AddSignalR and
  • SignalR 不能与 .Net Core 一起使用

    我正在尝试安装SignalR在我的中使用 NuGet 包管理器C Asp Net 核心项目 但我收到此错误 称 SignalR 与 net core 不兼容 它真的还不支持吗 或者我可以做些什么来让它发挥作用吗 如果有必要提及的话 我正在使
  • Signalr/Hub 未在 IIS 7 中加载,但在 Visual Studio 中正常工作

    我正在使用 SignalR 的 Asp Net 4 0 框架上开发一个 Web 应用程序 并从 Nuget 包安装了它 当我调试或运行应用程序而不进行本地调试时 它可以正常工作 但是 当它部署到生产服务器时 它无法找到signal hubs
  • 当我尝试创建 SignalR hubConnection 时,System.Net.Http.HttpRequestException 被捕获

    请帮助我 当我尝试建立 hubConnection 时 我不断收到 System Net Http HttpRequestException 我已经浏览了很多教程并下载了示例代码 但似乎没有任何效果 我也尝试过在线搜索配置计算机的方法 但很
  • 在集线器外部获取 SignalR 用户 (Hub.Context)

    有没有办法在集线器之外获取当前的 signalR 请求用户 我可以在集线器方法内部使用 Hub Context User 但是如果集线器方法调用任何其他底层 Wcf 服务调用 附加的BehaviorExtensionElement 用于添加
  • 为什么空闲的 SignalR 连接本地网络负载为 4-6 Mbps? [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我的启用 SignalR 的应用程序会产生较高的本地网络流量 但前提是在 Chrome 中运行并且该应用程序由 IIS Expre
  • Xamarin - SignalR 挂在连接上

    我正在尝试将我的 Xamarin 应用程序连接到托管在 Azure 上的 SignalR 后端 我遇到的问题是每次我在 HubConnection 上调用 StartAsync 时 它都会挂起客户端并且请求永远不会完成 我尝试通过应用程序进
  • Firefox 中的 Signalr 连接意外中止

    我正在使用 SignalR 具有跨域请求 2 3 0 版 用于集成到 ASP NET 站点的网络聊天 一切正常 但我发现 SignalR 连接的奇怪行为 当我单击聊天选项卡中的引用进行文件下载时 SignalR 连接被中止 并且在我的 Hu
  • SignalR 的浏览器兼容性如何?

    我在网上找到的最多的是 SignalR FAQ 其中指出 SignalR 在 IE6 7 中不起作用 但是 出于法律原因 我需要向客户提供受支持的浏览器列表 SignalR 有这样的经过测试的浏览器列表吗 Thanks 看起来微软已经发布了
  • SignalR 在通知/协商请求时抛出 405 错误

    我用这样的角度连接到服务器 this hubConnection new signalR HubConnectionBuilder withUrl location protocol localhost 5000 notify config
  • Signalr - 发送消息的重写方法

    我有一个实施PersistentConnectionSignalr 中的类 对于我们的网站 我需要能够广播消息 然后让每个连接确定该特定消息是否与该特定用户相关 然后再将其通过管道发送到浏览器 像这样的事情 public class MyC
  • Signalr 在生产服务器中总是陷入长轮询

    当我在服务器中托管应用程序时 它会检查服务器端事件并始终回退到长轮询 服务器托管环境为Windows Server 2012 R1和IIS 7 5 无论如何 我们是否可以解决这个问题 https cloud githubuserconten
  • 带有服务总线的 SignalR Azure 云服务

    我使用 SignalR 构建了一个简单的聊天应用程序那里有教程 http www asp net signalr overview getting started tutorial getting started with signalr

随机推荐