Socket.io Client sock js -конфигурация прокси-узла (ws: //) - PullRequest
0 голосов
/ 22 января 2020

После создания моего простого программного обеспечения с использованием React UI и Express Back-end я решил развернуть на своем сервере. Локальное тестирование работает нормально, поскольку не требует настройки прокси или сервера.

Однако я столкнулся с проблемой, пытаясь объединиться с "Apache VirtualHost Proxy".

Это мои текущие настройки.

Я внес изменения на клиенте (React) socket.connect

const io = socket.connect(
      'www.domain.com/DataProvider/',
      {
        path: '/DataProvider/socket.io',
      }
    );

Имя домена (ServerName): www.domain.com

  • React (UI): localhost:3040 -> /
  • Express API: localhost:3041 -> /DataProvider/

И ниже - моя настройка VirtualConfig

<VirtualHost *:80>
  ServerName www.domain.com
  ProxyRequest off
  ProxyPreserveHost On

  # My Attempt on trying to solve this problem (Now it just gives 400 Error)
  RewriteEngine On
  RewriteCond %{REQUEST_URI}    ^/sockjs-node         [NC]
  RewriteCond %{QUERY_STRING}   transport=websocket   [NC]
  RewriteRule "/(.*)"          "ws://localhost:3040/"  [P,L]

  # Bringing in Backend and Solving socket.io Issue (Solved)
  <Location "/DataProvider/">
    RewriteEngine On
    RewriteCond %{REQUEST_URI}    ^/DataProvider/socket.io  [NC]
    RewriteCond %{QUERY_STRING}   transport=websocket       [NC]
    RewriteRule "/(.*)"           "ws.localhost:3041/socket.io/"  [P,L]

    ProxyPass "http://localhost:3041/"
    ProxyPassReverse "http://localhost:3041"
  </Location>

  ProxyPass "/" "http://localhost:3040/"
  ProxyPassReverse "/" "http://localhost:3040/"
</VirtualHost>

Я так близок к завершению этого проекта, но эта проблема тянет меня вниз.

К счастью, я помогаю, потому что потерян уже несколько часов.

...