Difference between SignalR and Pusher

元气小坏坏 提交于 2019-12-11 16:32:58

问题


I want to create a web app using React as the front end technology. A requirement for the app is that the server will be able to update all the clients with information about changes (not have to be an exact real time, but should update after no more than 10 seconds).

Solutions like clients requesting updates from the server every several seconds are out of the question.

Requirements:

1) The server's should be implemented with either .NET or with Node.js.

2) The connection MUST be secured via port 443 of the IIS.

I read a bit about Micorsoft's SignalR and about Pusher Channels which seems to provide exactly the kind of service I require.

Could you please elaborate about what exactly are the differences between them? When should I choose each? Which of them got more community support? Which is easier to implement? Stuff like that...


回答1:


Both SignalR and Pusher Channels ultimately both use websockets to deliver messages to clients, so both should meet your requirements to deliver messages to clients in realtime.

1) Both offerings also meet your requirements for both library support:

SignalR supports .NET:

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

Pusher Channels has server support for both nodejs and .NET:

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

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

2) Both offerings also meet your requirements for sending messages over TLS/WSS:

SignalR:

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

Pusher Channels:

Securing Pusher's messages

In terms of the differences between them this depends on your implementation, if you just run SignalR on your own ISS server then it will be down to you to manage all of the websocket connections and all of the scaling challenges that come with this.

However similar to how Channels works, SignalR also has a managed websocket service, so you do not need to manage the connections or scaling. You just make an API request with the message you want to send to either Channels or SignalR and this message is then broadcast to the interested clients connected by websockets. In this scenario you do not manage the websocket connections yourself.

However in terms of pricing Channels appears to be far more competitive (especially the free offering), so if you are looking at the managed offering Channels looks to be a better value proposition:

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

https://pusher.com/channels/pricing

Both offerings look fairly similar in terms of implementation (assuming you are using the managed service). The complexity would increase if you implement SignalR on ISS:

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

In terms of support Pusher has a free application support offering:

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

Hope this helps!




回答2:


This presentation has some answers A 10 Minute Guide to Choosing a Realtime Framework



来源:https://stackoverflow.com/questions/57901352/difference-between-signalr-and-pusher

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!