Я создаю свой первый веб-сокет, он работает локально с 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
2 ответа
Я решил это,
Сначала я изменил порт на 8080 (я не думаю, что это было необходимо.)
Изменил соединение URL на:
wss://xxxxxxxxx/wss2/:8080
(Потому что ProxyPass)
И это работает.
Если вы используете веб-сервер Apache (2.4 или выше), включите эти модули в файле httpd.conf
Если вы не знаете, как включить, используйте следующие команды
- 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).
Похожие вопросы
Связанные вопросы
Новые вопросы
php
PHP — это открытый, мультипарадигмальный, динамически типизированный и интерпретируемый язык сценариев, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.