Проблему, к счастью, получилось решить самостоятельно через hproxy
Поэтапно:
Устанавливаем
hproxy:
wget http://www.haproxy.org/download/1.5/src/haproxy-1.5.3.tar.gz
tar -zxvf haproxy-1.5.3.tar.gz
cd haproxy-1.5.3
make TARGET=linux2628 USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 USE_CRYPT_H=1 USE_LIBCRYPT=1
make install
При первом
make мне выдало ошибку
fatal error: pcre.h: No such file or directory
Лично мне на Ubuntu помогло
sudo apt-get install libpcre3-dev
Источник:
https://stackoverflow.com/questions/22555561/error...
Дальше создаем файл настроек(я создал его в /etc/hproxy.cfg):
Где
WSS_SOCKET_PORT - порт, по которому вы будете обращаться к сокетам через wss://(в моём случае - 3033 и обращаюсь я теперь по wss://sitename.com:3033)
SOCKET_SERVER_PORT - порт, который вы забиндили в php и который доступен по ws://(в моём случае - 3003)
/etc/path/to/full.pem - путь к сертификату, который должен содержать внутри себя и сертификат и ключ сертификата.
Если у вас ключ и сам сертификат отдельно друг от друга(как было у меня), то вам поможет простая команда(и соотв. в пути уже указывайте путь к объединенному .pem файлу)
cat /etc/path/to/crt.pem /etc/path/to/key.pem > /etc/path/to/full.pem
global
log 127.0.0.1 local0
maxconn 10000
daemon
defaults
mode http
log global
option httplog
retries 3
backlog 10000
timeout client 30s
timeout connect 30s
timeout server 30s
timeout tunnel 3600s
timeout http-keep-alive 1s
timeout http-request 15s
frontend public
bind *:WSS_SOCKET_PORT ssl crt /etc/path/to/full.pem
acl is_websocket hdr(Upgrade) -i WebSocket
use_backend ws if is_websocket
default_backend www
backend ws
server ws1 127.0.0.1:SOCKET_SERVER_PORT
backend www
timeout server 30s
server www1 127.0.0.1:8080
После этого в JS меням порт коннекта к сокету на тот, который указали в
WSS_SOCKET_PORTwindow.phpSocket = new ab.Session('wss://sitename.com:3033',
Затем запускаем
haproxy с нашим конфигом
haproxy -f /etc/haproxy.cfg -p /var/run/haproxy.pid -D
И пробуем подключится.
У меня заработало)