2

一个完整的骨干菜鸟问题。

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

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

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

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

4

3 回答 3

0

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

于 2013-10-22T13:51:27.640 回答
0

我只是要扩展@Yaroslav 的回答。他的回答是完全正确的;你不能明确地做你想做的事。您的工作流程必须是这样的:

  1. 客户端从您的 webapp 外部执行一些操作(例如命令行 POST)
  2. 您的服务器会按照要求执行任何操作,但随后会通知您的客户端。
  3. 您的 Backbone 视图接受通知并重新渲染(使用 this.render)

就您的服务器推送技术而言,您有几个不同的选择。

  1. 使用 AJAX 轮询
  2. 使用 AJAX 进行长轮询
  3. 网络套接字
  4. 服务器发送的事件

所有这些都在这篇博文中涉及和解释。

一个简短的总结:

轮询

轮询是指您的 Web 应用程序以给定的时间间隔向您的服务器询问新信息。即,您的 Backbone 应用程序每 10 秒询问是否发生了任何新情况。这会给你的间隔时间带来最大延迟,并可能导致很多不必要的请求

长轮询

您的客户端始终维护对服务器的开放请求,直到发生某些事情才会返回。那时,您的客户可以对新信息采取行动,然后发出新请求,该请求再次保持打开状态,直到有新信息。

网络套接字

Websockets 是一种双向传输机制,它支持服务器->客户端和客户端->服务器消息。

服务器发送事件

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

于 2013-10-22T14:29:23.527 回答
0

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

考虑说SockJSSocket.IO用于自己的实现或云中的一些推送服务,为这些目的提供 API,例如Pusher

于 2013-10-22T15:00:19.080 回答