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

时间:2013-06-24 00:19:56

标签: ajax node.js express socket.io

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

1 个答案:

答案 0 :(得分:24)

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

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

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