Клиент Socket.io не может подключиться к пространству имен сервера в Docker Swarm - PullRequest
0 голосов
/ 02 августа 2020

Я разрабатываю сервер 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"

Не знаю, что я могу проверить. Я видел, что есть аналогичный вопрос , но ответа не получил.

...