Я разрабатываю сервер ExpressJS и Socket.io. При запуске его локально или с помощью docker -compose мой тестовый клиент может подключиться к запрошенному пространству имен, но когда я развертываю его в Docker Swarm (даже если это сама моя машина разработчика), я получаю событие подключения на стороне клиента, но не на стороне сервера.
Код для обработки подключений на стороне сервера:
app.wsEngine.socketio
.of(/^\/\w+$/)
.on("connect", (socket) => console.log('Connected')); // Called only locally and with compose
Клиент:
const io = require('socket.io-client');
socketio = io("http://localhost:8282/1", { path: "/tg/ws" });
socketio
.on("connect", () => console.log("Connected!")); // Always called
Файл Compose (используется как для создания, так и для развертывания):
version: "3.3"
networks:
tg_live:
driver: overlay
services:
tg:
image: app:alpha1
networks:
tg_live:
aliases:
- tg.tms.asts.com
ports:
- "8282:8080"
Не знаю, что я могу проверить. Я видел, что есть аналогичный вопрос , но ответа не получил.