socket.io 中的 express 的目的是什么?

What is the purpose of express in socket.io?

对于这个新手问题,我很抱歉,socket.io中的express的目的是什么,为什么我们需要在创建聊天应用程序时要求express?我们可以只使用socket.io API 创建聊天应用程序 ?

提前致谢。

Express 是一个微型框架,用于使用 Node.js 创建 Web 应用程序。您可以将其视为 "Ruby on Rails" 极其轻量级的替代品。

您将它与 Socket.io 一起使用,因为您通常需要一个基础来开始创建网络应用程序。快递通常是常见的选择,但也有像 Sails.js 这样的其他选择。您也可以使用普通 Node.js API 来创建具有 Socket.io 的应用程序。

一个 webSocket 连接是用一个包含特殊 webSocket headers 的 http 连接发起的,当双方同意移动到 webSocket 时,然后 "upgraded" 从 http 到 webSocket 协议。因此,您需要在 nodejs 中监听 http 服务器,以便进行 webSocket 连接。

您不必为 Web 服务器使用 Express 来处理传入的 webSocket 连接(如果需要,您可以只使用 nodejs 中的普通 http 模块或任何其他侦听传入的 http 连接的模块),但是 socket.io 与 Express 直接集成,因此 socket.io 只需一行代码即可连接到 Express,然后监听传入的 webSocket 连接。

而且,正如其他人所说,无论何时您拥有网络服务器,您通常也在提供网页服务,而 Express 是一种通过 nodejs 提供网页服务器的简单且流行的方式,因此许多使用 socket.io 的人已经也使用 Express。