SignalR 和 Pusher 之间的区别
Difference between SignalR and Pusher
我想创建一个使用 React 作为前端技术的网络应用程序。该应用程序的一个要求是服务器将能够使用有关更改的信息更新所有客户端(不必是准确的实时,但应该在不超过 10 秒后更新)。
客户端每隔几秒向服务器请求更新这样的解决方案是不可能的。
要求:
1) 服务器应使用 .NET 或 Node.js 实现。
2) 必须通过 IIS 的端口 443 保护连接。
我阅读了一些关于 Micorsoft 的 SignalR
和 Pusher Channels
的文章,它们似乎提供了我需要的那种服务。
能否请您详细说明一下它们之间到底有什么区别?我应该什么时候选择?他们中的哪一个得到了更多的社区支持?哪个更容易实施?诸如此类...
这个演示文稿有一些答案A 10 Minute Guide to Choosing a Realtime Framework
SignalR 和 Pusher Channels 最终都使用 websockets 向客户端传递消息,因此两者都应该满足您实时向客户端传递消息的要求。
1) 这两种产品也满足您对两种库支持的要求:
SignalR 支持 .NET:
https://dotnet.microsoft.com/apps/aspnet/signalr
Pusher Channels 具有对 nodejs 和 .NET 的服务器支持:
https://github.com/pusher/pusher-http-node
https://github.com/pusher/pusher-http-dotnet
2) 这两种产品还满足您通过 TLS/WSS:
发送消息的要求
信号R:
https://kimsereyblog.blogspot.com/2018/07/signalr-with-asp-net-core.html
推送渠道:
就它们之间的差异而言,这取决于您的实现,如果您只是 运行 SignalR 在您自己的 ISS 服务器上,那么您将需要管理所有的 websocket 连接和所有的随之而来的扩展挑战。
然而,与 Channels 的工作方式类似,SignalR 也有一个托管的 websocket 服务,因此您不需要管理连接或缩放。您只需使用要发送到 Channels 或 SignalR 的消息发出 API 请求,然后该消息就会广播到通过 websockets 连接的感兴趣的客户端。在这种情况下,您不需要自己管理 websocket 连接。
然而,就定价而言,渠道似乎更具竞争力(尤其是免费产品),因此如果您正在查看托管产品,渠道似乎是一个更好的价值主张:
https://azure.microsoft.com/en-gb/pricing/details/signalr-service/
https://pusher.com/channels/pricing
这两种产品在实施方面看起来非常相似(假设您使用的是托管服务)。如果在 ISS 上实现 SignalR,复杂性会增加:
https://docs.microsoft.com/en-us/aspnet/core/signalr/scale?view=aspnetcore-2.2
在支持方面,Pusher 提供免费的应用程序支持服务:
https://support.pusher.com/hc/en-us
希望对您有所帮助!
我想创建一个使用 React 作为前端技术的网络应用程序。该应用程序的一个要求是服务器将能够使用有关更改的信息更新所有客户端(不必是准确的实时,但应该在不超过 10 秒后更新)。
客户端每隔几秒向服务器请求更新这样的解决方案是不可能的。
要求:
1) 服务器应使用 .NET 或 Node.js 实现。
2) 必须通过 IIS 的端口 443 保护连接。
我阅读了一些关于 Micorsoft 的 SignalR
和 Pusher Channels
的文章,它们似乎提供了我需要的那种服务。
能否请您详细说明一下它们之间到底有什么区别?我应该什么时候选择?他们中的哪一个得到了更多的社区支持?哪个更容易实施?诸如此类...
这个演示文稿有一些答案A 10 Minute Guide to Choosing a Realtime Framework
SignalR 和 Pusher Channels 最终都使用 websockets 向客户端传递消息,因此两者都应该满足您实时向客户端传递消息的要求。
1) 这两种产品也满足您对两种库支持的要求:
SignalR 支持 .NET:
https://dotnet.microsoft.com/apps/aspnet/signalr
Pusher Channels 具有对 nodejs 和 .NET 的服务器支持:
https://github.com/pusher/pusher-http-node
https://github.com/pusher/pusher-http-dotnet
2) 这两种产品还满足您通过 TLS/WSS:
发送消息的要求信号R:
https://kimsereyblog.blogspot.com/2018/07/signalr-with-asp-net-core.html
推送渠道:
就它们之间的差异而言,这取决于您的实现,如果您只是 运行 SignalR 在您自己的 ISS 服务器上,那么您将需要管理所有的 websocket 连接和所有的随之而来的扩展挑战。
然而,与 Channels 的工作方式类似,SignalR 也有一个托管的 websocket 服务,因此您不需要管理连接或缩放。您只需使用要发送到 Channels 或 SignalR 的消息发出 API 请求,然后该消息就会广播到通过 websockets 连接的感兴趣的客户端。在这种情况下,您不需要自己管理 websocket 连接。
然而,就定价而言,渠道似乎更具竞争力(尤其是免费产品),因此如果您正在查看托管产品,渠道似乎是一个更好的价值主张:
https://azure.microsoft.com/en-gb/pricing/details/signalr-service/
https://pusher.com/channels/pricing
这两种产品在实施方面看起来非常相似(假设您使用的是托管服务)。如果在 ISS 上实现 SignalR,复杂性会增加:
https://docs.microsoft.com/en-us/aspnet/core/signalr/scale?view=aspnetcore-2.2
在支持方面,Pusher 提供免费的应用程序支持服务:
https://support.pusher.com/hc/en-us
希望对您有所帮助!