【问题标题】:How to implement server-updates-listener in client side如何在客户端实现服务器更新侦听器
【发布时间】:2018-06-27 21:19:07
【问题描述】:

我有一个关于设计模式的理论问题。 我希望我的客户端从我的服务器端接收事件,假设用户在聊天中收到新消息。

假设我们在客户端运行 JavaScript。 实现这一点的一种方法是从客户端向服务器发送一个请求,定期询问'Are there any updates?'。这是低效的,因为当没有可用更新时,我们将发送太多冗余请求。

有没有办法只在有更新时才从服务器端收听更新。例如在客户端实现接收器/侦听器?如果这不能用 JavaScript 完成,你还能怎么做?

谢谢。

【问题讨论】:

    标签: javascript design-patterns observers


    【解决方案1】:

    这里有几个解决方案:

    1. 让您的 AJAX 请求在定时循环中运行。虽然不是实时的,但它具有类似于实时应用程序的属性。

      var requestLoop = setInterval(function(){
        //HTTP Request to update data here
      }, 60000);
      
    2. WebSockets。这就是他们专门开发的目的,“使用此 API,您可以向服务器发送消息并接收事件驱动的响应,而无需轮询服务器以获取回复。” 注意:Edge/IE 存在浏览器支持问题

    附加:Writing WebSockets for JS

    WebSocket 上的 Stackoverflow 支持:What browsers support HTML5 WebSocket API?

    【讨论】:

    • 谢谢。 WebSockets 是我一直在寻找的 :)
    猜你喜欢
    • 1970-01-01
    • 2012-01-29
    • 1970-01-01
    • 1970-01-01
    • 2018-04-05
    • 1970-01-01
    • 1970-01-01
    • 2018-07-27
    • 1970-01-01
    相关资源
    最近更新 更多