socket.io 服务器在部署时是否需要与后端分开?

does socket.io server need to be seperate from backend when deploying?

我正在构建 React 应用程序。我有我的客户端文件夹和包含我所有 mongo 数据库模型、路由、函数等的后端文件夹...

我知道我的应用需要使用 socket.io

我的前端在 localhost:3000,我的后端在 localhost:5000

我的理解是socket.io需要自己的端口。

这是否意味着当我部署到 heroku 时,我需要部署后端服务器、前端服务器和 socket.io 服务器?

My understanding is that socket.io needs its own port.

这是不正确的。 socket.io 可以使用与后端相同的端口就好了。通过底层 webSocket 连接协议使用的自定义 header,可以将创建 socket.io 连接的传入请求与其他 Web 请求区分开来。这允许 socket.io/webSocket 和您的 http 服务器使用完全相同的端口。

Does this mean when I deploy to heroku I need to deploy a backend server, frontend server, and a socket.io server?

没有。您仍然可以只拥有前端服务器和后端服务器,后端服务器可以处理您的后端请求和 socket.io 连接。