docker - Heroku 上的 Socket.io + Webapp 不同的容器 Docker ( 404 Not Found )
问题描述
我将我的项目部署在 Heroku 的 docker 容器中。
web.1:连接到 socket.io 的静态文件
server.1: socket.io 连接到 mongo atlas
服务器.js
const io = require('socket.io')(server, {
cors: {
origin: '*',
},
transports: ["xhr-polling"]
});
...
server.listen(process.env.PORT || 3000, () => {
console.log(`listening on *:${process.env.PORT}`);
});
客户端.js
var socket = io.connect();
我无法连接。我在 Stackoverflow 中搜索,我了解 Heroku 定义了要连接的端口,但我有两个容器在同一个域中运行。一个在端口 80(静态网站)中,另一个在 Heroku(socket.io 服务器)生成的随机端口中。
帮助?
解决方案
这在 Heroku 中是不可能的:每个 Web 应用程序只能部署一个 Dyno,因此只能使用一个端口(由 Heroku 动态分配的端口)。
此外,您不能硬编码端口号(即 80)。
在您的情况下,您可以在 GitHub 上创建 2 个 Dynos 或托管网站(如果它是静态的)。
推荐阅读
- java - Redis 对哈希中的元素进行排序和检索
- linux - Ubuntu - NGINX 在 DigitalOcean 空间 /mnt/ 上找不到文件
- swift - 在 swift 包管理器清单中包含资源
- pymongo - PyMongo:如何获取与任何可能的过滤器匹配的所有对象?
- javascript - 未按预期显示时间
- c++ - 模板化包装器中基类型的 C++ 转换运算符
- asp.net - 如何在 Visual Basic 中格式化日期?
- c - 是否可以在 C 语言中给出数学表达式作为参数?
- c# - 使用 UWP/C# 在笔记本电脑中查找使用前置摄像头的应用程序#
- selenium - 在 Google Chrome 和 Selenium 之间切换