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

我一直在nodejs中编程,看了如何使用socket.io和ajax调用节点服务器。 是否devise了socket.io来代替ajax? 我很想知道在哪些情况下使用socket.io是好的,哪些是更好的。 感谢您的input。

那么,networking套接字(通过socket.io)的主要事情之一,提供了ajax缺乏服务器推动。 所以,如果你想了解服务器上的新事件(例如,一个不同的用户给你发送了一条消息),那么你需要进行服务器轮询,这意味着你发送一个相对频繁的周期性循环的Ajax请求。 大多数情况下,服务器都回应说没有什么新东西,但偶尔当有新东西的时候,客户端可以了解它。

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

  • 以请求/响应模式向服务器提交数据
    • AJAX或networking套接字基本上相同,传统的formsPOSTS也行
  • 在事件stream模型中将事件提交给服务器
    • networking套接字是最好的,可以通过Ajax模拟
  • 将事件从服务器推送到浏览器
    • networking套接字是最好的,可以通过ajax长轮询,闪存等(socket.io有几个后备它可以尝试使用,如果真正的networking套接字不可用)。
  • 旧的浏览器,一些移动平台
    • networking套接字的支持不存在,所以阿贾克斯是你的后备