使用AJAX无法获得的HTML5 Web套接字有什么用?

Nic*_*ner 5 ajax html5 websocket

伊恩希克森:

我希望iframe沙盒功能对开发人员来说是一个很大的好处,如果它起飞的话.我个人最喜欢的功能可能是Web Sockets API,它允许与服务器进行双向通信,以便您可以实现游戏,聊天,远程控制等.

使用AJAX无法获得的Web套接字有什么用?它只是方便,还是以某种方式更有效率?服务器是否可以将数据发送到客户端,而不必等待消息以便它可以响应?

Dav*_*ard 4

是的,这都是关于服务器能够将数据推送到客户端的。目前,在不使用 Flash/Silverlight/Java/ActiveX 的情况下模拟双向通信采用以下两种解决方法之一:

  • 传统轮询:客户端频繁向服务器发出小请求,检查更新。即使没有发生更新,客户端也不知道,并且必须不断轮询更新。尽管每个请求可能都是轻量级的,但许多客户端的持续轮询可能会很快累积起来。
  • 长轮询:客户端定期发出更新请求,就像定期轮询一样,但如果尚无可用更新,则服务器不会立即响应并保持连接打开。当更新最终可用时,服务器将其推送到客户端,客户端对其进行操作,然后重复该过程。长轮询提供类似推送的更新解决方案,但基本上是一种自我造成的 DDoS 攻击,对于许多类型的 Web 服务器来说可能会占用大量资源。

借助 WebSocket,您可以获得长轮询的所有响应能力优势,同时显着减少服务器端开销。