Ковбой вперед в порт

Я работаю над проектом веб-сокета и хочу, чтобы ковбойский сервер веб-сокета прослушивал порт 8080, но пересылал сообщения на другой порт. Могу ли я сделать это ? любая помощь приветствуется


person Rad1    schedule 28.05.2014    source источник


Ответы (1)


что вы подразумеваете под пересылкой сообщений на другой порт? обработчик cowboy обрабатывает сообщения, поступающие на ваш веб-сокет. Вы можете взять их и перенаправить куда угодно. Однако я думаю, что на самом деле вы ищете доверенное лицо, которое стоит перед вашим ковбоем. Если это так, вы должны рассматривать nginx как прикрытие. После того, как вы установили его, вы можете предоставить эту конфигурацию:

 http {
   ...
        server {
           listen 443
           ...

           location ~ ^/myws/
           {
             proxy_pass                      http://127.0.0.1:8080 ;
             proxy_http_version              1.1 ;
             proxy_set_header                Upgrade     $http_upgrade ;
             proxy_set_header                Connection  "upgrade" ;

             proxy_connect_timeout           60 ;
             proxy_read_timeout              86400 ;
             proxy_send_timeout              86400 ;
             proxy_ignore_client_abort       off ;
             proxy_redirect                  off ;
           }
          ...
        }
   ....
 }

это позволит вам запускать прослушивание ковбоя на любом порту, который вам нравится (8080 в вашем примере), позволяя nginx позаботиться о ваших потребностях SSL при пересылке запросов веб-сокета ковбою. Клиент может подключить @

wss://{ваш сервер}/myws

Если вам не нужен SSL адрес будет

ws://{ваш сервер}/myws

и порт прослушивания в приведенной выше конфигурации должен измениться на 80.

person ash    schedule 28.05.2014
comment
Мне нужно заставить все сообщения проходить через сервер веб-сокетов, а затем, если он предназначен для брокера mqtt, он будет перенаправлен на него. Однако мне нужно, чтобы оба сервера прослушивали другой порт (8080 и, например, 1880), поэтому веб-сокеты получают запрос на порт 8080 и пересылаем его mqtt на порт 1880. однако веб-сокет прослушивает 8080 и отправляет только через тот же порт. @пепел - person Rad1; 29.05.2014