【问题标题】:WebSockets, Comet, AJAX & Long PollingWebSockets、Comet、AJAX 和长轮询
【发布时间】:2012-07-07 09:09:48
【问题描述】:

我对Comet的理解是它是一个服务器端的AJAX请求。我对Long Polling(“Push”)的理解是,它也是一个服务器端的AJAX 请求。我对 WebSockets 的理解是它们是双向的 AJAX 请求。

如果有任何错误,请先纠正我!

假设我或多或少是正确的,这些真的只是 AJAX(JavaScript 在后台使用 XmlHttpRequest 对象)吗?如果它们不仅仅是 AJAX 调用,那么如何在客户端(通过 JavaScript)和服务器(使用 Java 之类的东西)上实现它们?提前致谢!

【问题讨论】:

  • 不一定。你可以使用 iframe。
  • WebSocket 是客户端和服务器之间可靠的双向连接,没有请求(除了初始握手) - 您只需发送数据并直接获取数据。这比必须为每条消息都发出新请求要好得多。
  • 关于您问题的术语部分,您可以查看这个答案:stackoverflow.com/questions/10782058/… 至于 Comet 和 WebSockets 的双向方面,请查看本文的最后部分:@987654322 @

标签: javascript ajax websocket comet long-polling


【解决方案1】:

您对WebSockets 的理解不正确。 WebSockets 是一种新协议,提供了与XmlHttpRequest 无关的新API。

这就是你创建 WebSocket 的方式

var exampleSocket = new WebSocket(
    "ws://www.example.com/socketserver", "protocolOne"
);  

见https://developer.mozilla.org/en/WebSockets/

【讨论】:

  • 感谢 @Otto (+1) - 我对 Comet 和 Long Polling 基于 AJAX 的说法是否正确?
  • @AdamTannon 阅读this
  • 如何在服务器端处理这个 WebSocket?它只是在那个 URL/端口上监听的服务器吗?在 Java 中,我假设这会以HttpServletRequest 的形式出现,并且可以通过回复HttpServletResponse 来提供服务?
猜你喜欢
  • 1970-01-01
  • 2011-02-27
  • 1970-01-01
  • 2013-08-11
  • 2011-02-03
  • 2011-05-21
  • 2023-03-20
  • 2012-02-24
  • 2011-08-08
相关资源
最近更新 更多