Собираю серверный билд на юнити, указываю старт вебсокета на localhost и порт 5666, запускаю в дебаге сервер стартует, в системе вижу что порт прослушивается. Запускаю как WSS и указываю путь к pks сертификату + пароль.
Собираю WebGL клиент, в клиентском вебсокете для соединения указываю домен сайта и хаб где живет вебсокет. (https://domen.ru/wshub) (пусть будет domen.ru для текста).
Веб сервер собственный на своей машине, трафик проксируется через Cloudflare, на сервере стоит Apache2 (v. 2.4.29).
В виртуал хосте написано следующее:
Синтаксис:
Используется bash
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName domen.ru
RewriteEngine On
ProxyPreserveHost On
ProxyRequests Off
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule ^/(wshub)$ wss://localhost:5666/$1 [P,L]
ProxyPass "/" "http://localhost:5050/"
ProxyPassReverse "/" "http://localhost:5050/"
ErrorLog /var/log/apache2/xxx-release-error.log
CustomLog /var/log/apache2/xxx-release-access.log common
SSLCertificateFile /var/www/xxx/certs/cert.pem
SSLCertificateKeyFile /var/www/xxx/certs/privatekey.key
</VirtualHost>
</IfModule>
<VirtualHost *:443>
ServerName domen.ru
RewriteEngine On
ProxyPreserveHost On
ProxyRequests Off
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule ^/(wshub)$ wss://localhost:5666/$1 [P,L]
ProxyPass "/" "http://localhost:5050/"
ProxyPassReverse "/" "http://localhost:5050/"
ErrorLog /var/log/apache2/xxx-release-error.log
CustomLog /var/log/apache2/xxx-release-access.log common
SSLCertificateFile /var/www/xxx/certs/cert.pem
SSLCertificateKeyFile /var/www/xxx/certs/privatekey.key
</VirtualHost>
</IfModule>
Если правильно понимаю задумку, то при попытке клиента присоединиться к сокету по wss://domen.ru/wshub апач должен проксировать соединение на серверный билд юнити на моей машине который слушает порт 5666. Весь остальной трафик гнать на localhost:5050 где у меня собсна сам сайт который запускает клиентский билд юнити.
Но короче нифига так не работает, файрфокс пишет ошибку при попытке сокета присоединиться "Firefox не может установить соединение с сервером wss://domen.ru/wshub.
В клаудфлейре включена поддержка вебсокета, если это важно.
Как заставить всю эту кодлу работать? Третий день мозги трахаю.
Если пробовать подрубать сокет по WS а не WSS и сервер запускать на WS - то все коннектится нормально, но мне такое не подходит ибо сайт должен работать на https а микшировать соединения, безопасное с открытым - браузеры не дают.