【发布时间】:2021-02-09 08:11:31
【问题描述】:
我有一个 docker compose,其中包含 3 个容器“node-red、influxdb、带有 nginx:alpine 图像的 JavaScript 网页的 html” 在 html 和 JavaScript 网页中,我有一个图像列表,我根据来自红色节点的数据通过 websockets 更改图像
我通过这个 JavaScript 函数接收我的数据
function startConnect() {
document.getElementById('dt').click();
socket = new WebSocket("ws://mywebsite.com:1880/ws/test");
socket.onmessage = function(e) {onMessageArrived(e.data)}
console.log("connected");
socket.onopen = function() {socket.send("1")};
}
// Called when a message arrives
function onMessageArrived(message) {
console.log("onMessageArrived: " + message);
var obj = JSON.parse(message);
document.getElementById("image1").src = "myimage/" + obj.L + "_DL.png";
document.getElementById("image2").src = "myimage/" + obj.M + obj.F + obj.S + "_" + obj.Z48_70 + "_M.png";
document.getElementById("image3").src = "myimage"+ obj.V + obj.V + "_X";
}
在我决定将 docker 用于“node-red 和 influx 以及 html 网页”并使用没有 docker 的 nginx 和 letencrypt 证书来处理我的 3 个容器的反向代理之前,一切都运行良好。
我面临的问题是,即使我将socket = new WebSocket("ws://mywebsite.com:1880/ws/test") 更改为socket = new WebSocket("ws://mywebsite.com:6100/ws/test"),我也无法使用 websockets 接收数据,我的网页使用的端口 6100 包含这个我有一个 https 错误和socket = new WebSocket("ws://192.170.0.6:6100/ws/test")我的网页容器的 IP 地址以及 new WebSocket("ws://mywebsite/webpage/ws/test") 这由 nginx 处理,以将其路由到我的网页容器使用的 IP 和端口
【问题讨论】:
标签: javascript docker nginx websocket node-red