如何在客户端

时间:2018-01-18 17:49:34

标签: javascript design-patterns observers

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

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

有没有办法只在有这种情况时从服务器端侦听更新。例如,在客户端实现接收器/监听器?如果用JavaScript无法做到这一点,你会怎么做呢?

谢谢。

1 个答案:

答案 0 :(得分:1)

这里有一些解决方案:

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

    var requestLoop = setInterval(function(){
      //HTTP Request to update data here
    }, 60000);
    
  2. https://console.cloud.google.com/iam-admin/serviceaccounts/project?project-name-12345。这是他们为此开发的具体内容,使用此API,您可以将消息发送到服务器并接收事件驱动的响应,而无需轮询服务器以进行回复。" 注意:有Edge / IE浏览器支持问题

  3. 附加:WebSockets

    WebSocket支持上的Stackoverflow:Writing WebSockets for JS