如何监听骨干网中的HTTP事件

时间:2013-10-22 13:47:13

标签: javascript http backbone.js

一个完整的骨干noob问题。

我想知道,有没有办法在骨干网中收听HTTP-POST事件?

可以说,当API用户从命令行使用POST执行wget请求时,我想更新我的视图。我看了at the API docs,我尝试了request选项,但没有运气。基本上在我看来,我正在尝试这样的事情:

this.listenTo(this.collection, 'request', this.render);

PS:我的代码中有this.render的函数定义

3 个答案:

答案 0 :(得分:0)

除非服务器通过某种服务器推送技术明确地通知客户端,否则一个客户端无法监听另一个客户端的事件。

答案 1 :(得分:0)

我只想延长@ Yaroslav的回答。他的回答是完全正确的;你无法明确做你想做的事。您的工作流程必须是这样的:

  1. 客户端从您的webapp外部执行某些操作(例如命令行POST)
  2. 您的服务器会按要求执行任何操作,但会通知您的客户。
  3. 您的Backbone视图接受通知并重新呈现(使用this.render)
  4. 就服务器推送技术而言,您有几个不同的选择。

    1. 使用AJAX进行投票
    2. 使用AJAX进行长轮询
    3. 的WebSockets
    4. 服务器发送的事件
    5. 所有这些都在this blog post中被触及并解释。

      简要总结:

      <强>轮询

      轮询是指您的网络应用程序以给定的时间间隔向您的服务器询问新信息的时间。即,每10秒你的Backbone应用程序会询问是否有新的事情发生。这可以给出间隔时间的最大延迟,并且可能导致大量不必要的请求

      长轮询

      您的客户端始终维护对服务器的打开请求,在发生某些事件之前不会返回该请求。那时,您的客户可以对新信息采取行动,然后提出新请求,该请求将再次保持打开状态,直到获得新信息。

      <强>的WebSockets

      Websockets是一种双向传输机制,可以启用服务器&gt;客户端和客户端&gt;服务器消息。

      服务器已发送事件

      服务器发送的事件是单向传输,是HTML5规范的一部分。它们允许服务器&gt;客户端消息。

答案 2 :(得分:0)

您的客户端应该监听推送服务(WebSocket,长轮询AJAX等),因此如果服务器上发生某些事件,服务器将通知客户有关它。

请考虑使用SockJSSocket.IO表示自己的实施或云中的某些提供服务的推送服务,例如: Pusher