我在google中部署了一个独立的WebSocket服务器。按照laravel-websockets配置,我可以在访问<ip address>/laravel-websockets时连接到服务器。

我从“让我们加密”安装了一个SSL证书,然后将.env文件配置为指向我的证书和密钥文件:
LARAVEL_WEBSOCKETS_SSL_LOCAL_CERT=/etc/letsencrypt/live/mydomain.com/fullchain.pem LARAVEL_WEBSOCKETS_SSL_LOCAL_PK=/etc/letsencrypt/live/mydomain.com/privkey.pem
然后我打开WebSockets仪表板,使用域名而不是IP mydomain.com/laravel-websockets。我重新启动apache sudo systemctl restart apache2并运行php artisan WebSockets:serve。然后我试着连接,但失败了。

控制台显示:
到'wss://mydomain.com:6001/app/mypusherkey?protocol=7&client=js&version=4.3.1&flash=false‘的WebSocket连接失败
请告诉我,因为我需要这个尽快起作用。谢谢。
发布于 2022-05-05 21:31:10
根据我在这里看到的文档:https://github.com/beyondcode/laravel-websockets/blob/master/docs/basic-usage/ssl.md和您提到的.env文件,恐怕您有一个简单的错误配置。
配置为PHP $_ENV或使用getenv()检索的变量通过php.ini文件进行配置。如果您使用了对我来说非常简单的.env文件这一事实,那么在shiphp上是一篇关于实现自定义env的解决方案的不错的文章。首先,我想尝试两种解决方案之一:
将--env-file混合到docker命令中
shiphp建议命令
docker run --rm -v $(pwd):/app -w /app --env-file .env php:cli php index.php这非常接近于您使用自定义的php:cli文件作为变量配置运行.env (此处为.env映像)所需的内容。
码头ENV变量
这不是那么直截了当,但更容易管理。此外,shiphp建议您可以创建自己的图像:
FROM php:cli
ENV LARAVEL_WEBSOCKETS_SSL_LOCAL_CERT=...
ENV LARAVEL_WEBSOCKETS_SSL_LOCAL_PK=...所有建议都与docker或配置相关,因为不幸的是,您给PHP开发人员留下了很少的信息来帮助您。如果您的套接字没有打开,或者正在打开,但是在默认的配置下,什么将是非ssl。在尝试调试从其他应用程序到它的连接之前,请先确定套接字是否已打开。您可以从HTTP网站连接到WS和WSS。从HTTPS连接到WSS是可能的。
发布于 2022-05-07 01:48:40
我同意@yergo,听起来你有一个错误的配置,你可以通过IP而不是域点击它,检查你的env在码头容器内。“码头-exec -it $”。如果响应为空,则不将env设置应用于容器。
发布于 2022-05-02 11:45:02
这可能是一个愚蠢的问题,但您确定端口6001没有被防火墙阻塞吗?
https://stackoverflow.com/questions/71886271
复制相似问题