Socket.IO 和 Firebase 有什么区别?

What is the difference between Socket.IO and Firebase?

我看了 Node.js 上的代码学校教程,他们在教程中使用 Socket.IO 模仿了聊天服务器。

我也觉得 Firebase 做同样的事情。

两者有什么区别,如果有的话?

其实还是有区别的

Socket.io 是一个 javascript 库来管理套接字。在网络聊天示例中,您创建套接字:

  1. 客户端到服务器
  2. 服务器到客户端

也就是说,你控制所有的端点,并使用socket.io作为你端点之间通信的工具。

相比之下,使用 firebase 你只关注 1(客户端到服务器)


使用服务与自己的基础设施的优缺点是一个不同的主题,并且自以为是。

有很多很多不同之处。例如:

SDK

Firebase 有 9 个 SDK,包括 JavaScript、Android、Unity。 Socket 仅适用于浏览器的 1 个官方客户端库 (JavaScript)。

实时功能 Firebase 具有 pub/sub 消息传递、连接状态恢复、在线状态、本机推送通知、网络钩子。 Socket.io 这些都没有。

文档

两者都有很好的文档,包括入门指南、信息架构和开发人员之旅,API 参考。

这些只是一些示例,但这里有一个 in-depth comparison between Firebase and Socket.io