Взял сокетный чат
https://kode-blog.io/websocket-server-php
Установил его на хостинг - всё ок, отлично работает. С хрома. А файерфокс не хочет коннектиться к серверу, говорит, несекьюрно.
>The app itself is under SSL but the websocket being accessed is not. Chrome and Opera don't care but Firefox does.
According to: https://bugzilla.mozilla.org/show_bug.cgi?id=303952
This is known and is not considered a bug. Mozilla's response: wontfix
Ок, нашёл решение (использовать на сервере прокси, первый ответ тут:
https://stackoverflow.com/questions/16979793/php-r... )
Установил оба модуля (mod_proxy.so и mod_proxy_wstunnel.so) в апач. Добавил в
apache2.conf строку
ProxyPass /wss2/ ws://r.xxxxxxxxxxx.xxx:999/
А в js-скрипт вызова сервера
var websocket = new WebSocket('wss://r.xxxxxxxxxxx.xxx/wss2/');
(999 порт специально открыт).
И не работает. Браузер при попытке подключения выдаёт
"Uncaught TypeError: websocket is not a constructor". Пробовал разные варианты писать в конфиг и в скрипт, бестолку.
Например:
ProxyPass /wss2/ ws://localhost:999/
и
var websocket = new WebSocket("wss://localhost/wss2/");
И я не понимаю, где вообще искать причину несоздания сокета.
websocket = new WebSocket('ws:127.0.0.1:999'); -вот так успешно работает по ws.
Сервер:
Ubuntu-18.04-amd64
Apache/2.4.29
PHP 7.2.24