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 属性中的授权

    我在 ServiceStack 上有一些服务 并在这个项目中使用 SignalR 现在 我想保护集线器连接 仅对经过身份验证的用户进行访问 但我使用ServiceStack框架身份验证 不是asp net身份验证 和ServiceStack
  • SignalR 因超过 2 个连接而失败

    我在 SignalR 中编写了一个相当简单的聊天应用程序 似乎如果我连接超过 2 个选项卡 浏览器 设备 第三个将挂起并且永远不会连接并最终导致问题 为什么我只能与 2 个用户连接 当我断开另外两个请求之一时 第三个请求就会通过 无论我使用
  • SignalR 方法访问异常

    当我尝试调试一个简单的信号应用程序时出现此错误 尝试访问该方法 Microsoft AspNet SignalR DependencyResolverExtensions InitializePerformanceCounters Micr
  • 如何从 Bash 生成 Pusher 身份验证字符串?

    我无法生成要使用的 正确 身份验证字符串 通过curl向Pusher发送消息 这是我的脚本 当然 秘密部分被删掉了 bin bash key my key secret my secret appID my app id timestamp
  • Asp .Net Core 2 + SignalR (1.0.0-alpha2-27025) + /signalr/negotiate 404 错误

    我将 SignalR 添加到 ASP Net Core 2 应用程序 packages Microsoft AspNetCore All 版本 2 0 0 Microsoft AspNetCore SignalR 版本 1 0 0 alph
  • SignalR 中消息的最大限制

    我正在尝试通过 SignalR 发送通知 它工作完美 但是我们可以通过 SignalR 发送的消息的最大大小是多少 官方有这样的限制吗 https github com SignalR SignalR issues 1205 https g
  • 如何在 ASP.NET Core 中获取 SignalR Hub 上下文?

    我正在尝试使用以下命令获取集线器的上下文 var hubContext GlobalHost ConnectionManager GetHubContext
  • 使用 IdentityServer 承载的 SignalR 将不会从 Hub 接收任何 JWTBearerEvents

    我们有一个 api net core 2 2 它使用IdentityServerAuthenticationDefaults AuthenticationScheme对于所有工作正常的控制器 我们现在决定添加 SignalR Hub 以提供
  • 如何保留 SignalR 连接 ID

    我正在尝试构建一个聊天应用程序 其中用户 ID 由其自动生成的 signalR 连接 ID 表示 页面刷新时 实例化新连接时连接 ID 会发生变化 有没有办法持久保存用户连接 ID 的状态 直到浏览器会话结束 即直到他结束客户端上的会话 有
  • Signalr - 无法读取服务器上的查询字符串

    我在这里要疯了 我完成了 chatHub 教程 一切正常 我连接到服务器 我可以向每个客户广播一条消息 然后我尝试添加查询字符串 因为我想获得有关我的用户的一些信息 因为许多用户可以在同一会话中连接 这是我的 JavaScript func
  • 在 IIS Express 中测试 SignalR 应用程序

    大家好 我正在使用 Visual Studio 2012 并开发了一个简单的应用程序 仅用于审核目的 但是我陷入困境 因为当我尝试预览应用程序时 我收到以下错误消息 PlatformNotSupportedException This op
  • 与 Hub 中的 HttpContext.GetOwinContext() 等效的是什么?

    我在控制台应用程序中创建了一个自托管的 OWIN SignalR 服务器 从在 ASP NET MVC 应用程序 在 IIS 中 托管 SignalR 的示例中 我看到以下代码行 var authenticateResult await H
  • 如何在docker镜像中运行signalr blazor客户端的StartAsync连接?

    我创建了默认的 blazor 服务器端应用程序 然后添加Microsoft AspNetCore SignalR Client and ChatHub班级 然后编辑startup cs文件 添加services AddSignalR and
  • 通过 SignalR 在 IE 中缺少原型方法

    我遇到了一个问题 即仅在 IE 中并且仅当数组通过 SignalR 时才处理原型方法消失 在本例中为 Array prototype 方法 我写了一个小 愚蠢但简单的概念验证网络应用程序来演示这个问题 代码全部在下面 请注意 当您单击 更新
  • 如何在.net core项目中使用SignalR Core监听postgresql数据库?

    我正在开发 net core Web 应用程序 我想监听我的 PostgreSQL 数据库 如果桌面上有任何变化 我必须得到它 所以根据我的研究 我必须使用SignalR Core 我用 SignalR 做了一些示例应用程序 例如聊天应用程
  • 如何安全地向特定用户发送消息

    我正在使用 ASP NET MVC 5 和 SignalR 我想向特定用户发送消息 我遵循了中解释的方法本教程 https learn microsoft com en us aspnet signalr overview guide to
  • var chat = $.connection.chat; 出现对象未定义错误使用 SignalR 时

    我尝试安装 SignalR 库来创建示例聊天应用程序 我相信我已遵循文档中给出的所有步骤 我不确定失败的原因是什么 创建聊天对象时失败 我正在使用 VS2010 并使用 VS2010 包下载实用程序下载 SignalR 有人对此有疑问吗 谢
  • SignalR - HubContext 和 Hub.Context

    我是 signalR 的新手 正在阅读 API 并使用它 对 Hub 及其上下文有点困惑 那是 Hub Context is not HubContext HubContext我可以从GlobalHost ConnectionManager
  • SignalR 无法连接到 SSL 上的 Azure Redis

    我目前在 Azure 上托管我的 redis 缓存服务器 并让 signalR 依赖它作为骨干 使用以下内容 GlobalHost DependencyResolver UseRedis 服务器 端口 密码 eventKey 这可以在端口
  • C# SignalR 异常 - 连接在收到调用结果之前开始重新连接

    我正在开发 2 个应用程序 第一个是 C 控制台应用程序 另一个是 Asp net Web 应用程序 我正在使用 SignalR 连接两者 这是我的 C 控制台应用程序 客户端 public class RoboHub public sta

随机推荐