当前位置: 首页 > 知识库问答 >
问题:

Express vs socket.io

梁丘威
2023-03-14

我刚刚开始使用Socket.io,我对Express有一些经验。我知道socket.io有双向通信,而express只是客户端到服务器。

这让我想,为什么我们不使用不同名称空间的socket.io,而完全不用express呢?

在哪些情况下我应该使用socket vs express?

在我需要双向通信的情况下,是否建议用express使客户机->服务器,然后对服务器->客户机使用套接字?

共有1个答案

王棋
2023-03-14

首先,express和Socket.io是完全不同的东西。Express是一个成熟的web服务器框架。您可以使用它来设置Web站点、处理来自浏览器的http请求、处理对API的http请求等。

IO是位于webSocket协议之上的通信层,webSocket协议使用http服务器建立初始连接。虽然使用socket.io和Express可以做的事情有一点重叠,但它们的不同之处在于重叠。

例如,如果您要建立一个Web站点,您不能用socket.io来完成,您可以使用Express这样的东西。

    null

选择要表达的Ajax调用的原因:

  1. HTTP连接是无状态和短寿命的,这使得实现具有故障转移和冗余的高规模、多服务器实现变得更加容易。
  2. 有大量工具可用于http连接,从身份验证库到数据格式(MIME)到音频到视频等。..
  3. 您希望您的客户端在非活动期间长时间连接的socket.io可能不实用的地方运行(可能是移动设备或电池操作设备)。
  4. 您希望在代理、防火墙或其他网络基础结构可能不支持长时间运行的webSocket连接或明确禁止这些连接的情况下运行。
  5. 您需要一个请求/响应模型。HTTP是request/response,在这里您可以为每个请求获得特定的响应,并且您可以确切地知道哪个响应与哪个请求对应。

所以,正如你所看到的,这个问题没有通用的答案。它实际上取决于通信的具体情况、所需的互操作性以及代码的确切需求。

以下是关于这个主题的一些其他参考资料:

Ajax vs socket.io

实时数据的websocket与rest API?

 类似资料:

相关问答

相关文章

相关阅读