У меня есть веб-сайт, размещенный на AWS Elasti c Beanstalk с использованием прокси nginx, и я пытаюсь использовать Socket.IO, однако я получаю сообщение об ошибке Firefox can’t establish a connection to the server at wss://my-domain.com/socket.io/?EIO=3&transport=websocket&sid=WKtOGhLspneTExRLAAAB
и код ответа 400, когда Страница пытается установить sh соединение.
Вот как сервер узла создается и генерирует события:
const express = require("express");
const app = express();
const server = app.listen(8081, () => {
console.log("Server started on port " + port);
});
const io = require("socket.io")(server);
app.route("/api/listener").post((req, res) => {
io.emit("response", req.body.Status);
res.sendStatus(200);
});
Вот как клиент пытается подключиться:
const io = require("socket.io-client");
let socket = io("https://my-domain.com");
socket.on("response",
function() {
console.log("Response received");
});
Это конфигурация для мой балансировщик нагрузки:
Я пробовал предложения из других подобных вопросов, таких как изменение протокола на SSL и протокола экземпляра на TCP, но это мешает сайту быть доступным. В моей конфигурации proxy_set_header Connection "upgrade"
и proxy_set_header Upgrade $http_upgrade
установлены для nginx.