Я создаю свой первый веб-сокет, он работает локально с ws, теперь я загрузил его на сервер, загрузил все файлы и запустил веб-сокет из ssh.

И я получаю эту ошибку: тайм-аут открытия рукопожатия WebSocket

Я попытался добавить эту строку в httpd.conf

ProxyPass /wss2/ ws://xxxxxxx:12345/

Но все равно не работает.

var conn = new WebSocket('wss://xxxxxxxxx:12345');

        conn.onopen = function(e) {
            console.log("Connection established!");
            conn.send(
                JSON.stringify({
                    'type':'socket',
                    'id':'<?php echo $this->session->id; ?>'
                })
            );
        };

Это ошибка консоли, которую я получаю:

dashboard:430 WebSocket connection to 'wss://xxxxxxxxxx:12345/' failed: WebSocket opening handshake timed out
3
Exale 15 Авг 2019 в 20:31

2 ответа

Лучший ответ

Я решил это,

Сначала я изменил порт на 8080 (я не думаю, что это было необходимо.)

Изменил соединение URL на:

wss://xxxxxxxxx/wss2/:8080

(Потому что ProxyPass)

И это работает.

0
Alex Alberich 21 Авг 2019 в 16:15

Если вы используете веб-сервер Apache (2.4 или выше), включите эти модули в файле httpd.conf

  1. mod_proxy.so
  2. mod_proxy_wstunnel.so

Если вы не знаете, как включить, используйте следующие команды

  • sudo a2enmod proxy_wstunnel
  • sudo a2enmod прокси

Затем добавьте этот параметр в ваш файл httpd.conf

ProxyPass /wss2/ ws://ratchet.mydomain.org:8888/

Используйте этот URL при вызове JavaScript, когда вы хотите WSS-соединение:

var ws = new WebSocket("wss://ratchet.mydomain.org/wss2/NNN");

Перезапустите веб-сервер Apache и убедитесь, что ваш рабочий Ratchet (соединение через веб-сокет) открыт перед применением настроек (порт имени хоста telnet).

0
Optimaz ID 23 Апр 2020 в 04:37