【问题标题】:Real time updates with ASP.NET CORE and Angular2使用 ASP.NET CORE 和 Angular2 进行实时更新
【发布时间】:2016-05-03 13:34:50
【问题描述】:

我们正在开发 ASP.NET CORE(服务器端)和 Angular2(客户端)的项目。

我们希望实现实时更新的功能。例如,如果有人在服务器端更新了一些值,这些更改会反映在客户端,而无需用户刷新页面(与 Meteor 开箱即用的相同功能)。

我认为 RXJS 可以完成这项工作,但是我可以使用 RXJS 实现此功能,我必须轮询服务器以进行更改。因为这会导致服务器上不必要的负载(即使启用了缓存)我不太喜欢这个选项。

所以,我认为有更好的方法来实现此功能,但我不知道要结合哪些技术。对于 ASP.NET CORE,SignalR 尚不可用,因此无法选择。我是否必须研究 WebSockets,或者我错过了什么?

【问题讨论】:

    标签: c# asp.net websocket signalr rxjs


    【解决方案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

    【讨论】:

      【解决方案2】:

      如果您不想轮询服务器,则必须使用与服务器的永久连接以允许它向客户端发送更新。

      最适合此任务的技术是 WebSocket,但您可以使用未完成的页面并将 flushing() 数据发送到响应中。

      对于第二种类型,this 会告诉你如何去,只需使用一个 ajax 请求,并在你收到一些数据时处理它。

      但同样,最好使用 WebSocket,因为它们是为此类任务而设计的。

      【讨论】:

        猜你喜欢
        • 2017-08-04
        • 2013-05-03
        • 2013-03-12
        • 1970-01-01
        • 1970-01-01
        • 2016-07-26
        • 1970-01-01
        • 2016-07-17
        • 2022-08-15
        相关资源
        最近更新 更多