我们正在开发ASP.NET CORE(服务器端)和Angular2(客户端)的项目。
我们希望实现实时更新的功能。例如,如果某人在服务器端更新某些值,则这些更改将反映在客户端,而无需用户刷新页面(与Meteor开箱即用的功能相同)。
我认为RXJS可以完成这项工作,但我可以使用RXJS实现此功能,我必须轮询服务器以进行更改。由于这会导致服务器上出现不必要的负载(即使启用了缓存),我也不太喜欢这个选项。
所以,我认为有更好的方法来实现这个功能,但我不知道要结合哪些技术。对于ASP.NET CORE,SignalR尚不可用,所以这是不可取的。我是否需要查看WebSockets,或者我缺少什么?
答案 0 :(得分:1)
如果您不需要服务器和客户端之间的双向数据绑定,并且您只对获取更新感兴趣(我假设您将使用任何RESTful API更改信息),那么SSE技术应该可以运行最适合你。
对于客户端实施:https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events
对于使用ASPNET Core的服务器端实现,请查看以下答案:ASPNET Core Server Sent Events / Response flush
答案 1 :(得分:0)
如果您不想轮询服务器,则必须使用与服务器的永久连接,以允许它向客户端发送更新。
此任务的最佳拟合技术是WebSocket,但您可以使用不完成的页面并将数据刷新()数据到响应中。
对于第二种类型,this将为您提供有关如何使用的建议,只需使用ajax请求以及每当您收到一些数据处理它时。
但是,再次,更好地使用WebSockets,因为它们是为这类任务而设计的。