何时使用socket.io以及何时使用ajax

jos*_*son 12 ajax node.js express socket.io

我一直在nodejs编程,看过如何使用socket.io和ajax调用节点服务器.socket.io是否设计用于替换ajax?我很想知道在哪些情况下使用socket.io以及哪些ajax更好.感谢您的投入.

Pet*_*ons 24

好吧,web套接字(通过socket.io)提供ajax缺少的主要功能之一是服务器推送.因此,如果您想了解服务器上的新事件(例如,不同的用户向您发送消息),那么使用ajax,您需要进行服务器轮询,这意味着您在相对频繁的定期循环中发送ajax请求.大多数情况下,服务器响应没有什么新东西,但偶尔会有新的东西,客户端可以了解它.

Web套接字允许服务器在没有轮询的情况下主动将通知推送到客户端.因此,如果您的应用程序具有需要在服务器上启动并且只是在浏览器中显示的任何类型的信息,那么Web套接字是更好的解决方案.

  • 在请求/响应模型中将数据提交到服务器
    • ajax或web套接字基本等同,传统形式的POSTS也行
  • 在事件流模型中将事件提交到服务器
    • 网络套接字是最好的,可以通过ajax模拟
  • 将事件从服务器推送到浏览器
    • 网络套接字是最好的,可以通过ajax长轮询,闪存等模拟(socket.io有几个回退,它可以尝试使用真正的网络套接字不可用).
  • 旧浏览器,一些移动平台
    • Web套接字支持不存在,所以ajax是你的后备

  • 但为什么要使用socket.io而不是简单的node.js webSockets?用例/优势是什么? (2认同)