我正在尝试在套接字上运行PHP聊天。
服务器配置:Ubuntu-18.04-amd64,Apache / 2.4.29,来自Let's Encrypt的SSL证书。
我用rachet。 Here,here和here描述了如何通过SSL连接来连接套接字。但是我没有成功。
我在Apache中安装了必要的模块:
sudo a2enmod proxy
sudo a2enmod proxy_wstunnel
sudo a2enmod proxy_http
写在/etc/apache2/apache2.conf
<VirtualHost *: 443>
<Location "/chat/">
ProxyPreserveHost On
ProxyPass /ws ws://xxxxxx.xx:999
ProxyPassReverse /ws ws://xxxxxx.xx:999
</Location>
</VirtualHost>
打开了999端口
sudo iptables -I INPUT -p tcp --dport 999 -j ACCEPT
重新启动Apache
sudo systemctl restart apache2
启动聊天服务器
php /var/www/html/chat/bin/chat-server.php
写出套接字调用脚本
websocket = new WebSocket ('wss://xxxxxx.xx/chat');
我尝试通过浏览器进行连接
https://xxxxxx.xx/chat/
出现错误
与'wss://xxxxxx.xx/chat'的WebSocket连接失败:在执行期间出错 WebSocket握手:意外的响应代码:301
我阅读了各种技巧,但仍然无法理解我做错了什么。任何改变情况的尝试都会产生错误301、300、500或200。
请告诉我我错了吗?