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

Posted

技术标签:

【中文标题】部署时socket.io服务器是不是需要与后端分开?【英文标题】:does socket.io server need to be seperate from backend when deploying?部署时socket.io服务器是否需要与后端分开? 【发布时间】:2022-01-07 16:20:22 【问题描述】:

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

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

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

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

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

【问题讨论】:

【参考方案1】:

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

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

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

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

【讨论】:

感谢 jfriend00 抽出宝贵时间来解释这一点。非常感谢

以上是关于部署时socket.io服务器是不是需要与后端分开?的主要内容,如果未能解决你的问题,请参考以下文章

Angularjs socket.io 服务

前端vue与后端Thinkphp在服务器的部署

部署后 Socket.io 不工作 - 抛出错误 - 405(不允许)

前端端口是怎么交互后端

Vue Js Nginx Docker 连接到后端

JWT 是不是应该是一个单独的身份验证微服务,而不是与后端业务逻辑坐在一起?