问题描述
我正在尝试使用 Ratchet PHP 创建 WebSocket 服务器并通过 JavaScript 连接到它。
PHP:
$server = IoServer::factory(
new HttpServer(
new WsServer(
new Chat()
)
),8080
);
echo("Address: " . $server->socket->getAddress() . "\n");
$server->run();
JS(客户端):
<script>
var conn = new WebSocket('ws://example.com:8080/socket/sockets/Chat.PHP');
conn.onopen = function(e) {
console.log("Connection established!");
conn.send('Hello World!');
};
conn.onmessage = function(e) {
console.log(e.data);
};
</script>
这很好用,或者至少可以,如果我的连接不是 HTTPS,所以不接受 WS 协议(firefox 说 Uncaught DOMException: The operation is insecure
)。所以我试图用 WSS 来做这件事,比如这里 https://stackoverflow.com/a/28393526/15411013,但我无权访问 SSH,也无权访问 httpd.conf 文件。我在本地计算机上执行此操作并且运行良好,只是我在此处具有该访问权限并且我需要它在服务器上运行。
是否可以在没有访问权限的情况下制作代理?在 htdocs 文件或其他地方?我试图用网上找到的代码添加 htaccess:
RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket
RewriteRule /(.*) ws://example.com:8080/socket/sockets/$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket
RewriteRule /(.*) http://example.com:8080/socket/sockets/$1 [P,L]
但这似乎不起作用。 感谢帮助
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)