首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在安全域上无法连接到自己的websocket服务器

在安全域上无法连接到自己的websocket服务器
EN

Stack Overflow用户
提问于 2022-04-15 16:02:38
回答 3查看 848关注 0票数 1

我在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连接失败

请告诉我,因为我需要这个尽快起作用。谢谢。

EN

回答 3

Stack Overflow用户

发布于 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建议命令

代码语言:javascript
复制
docker run --rm -v $(pwd):/app -w /app --env-file .env php:cli php index.php

这非常接近于您使用自定义的php:cli文件作为变量配置运行.env (此处为.env映像)所需的内容。

码头ENV变量

这不是那么直截了当,但更容易管理。此外,shiphp建议您可以创建自己的图像:

代码语言:javascript
复制
FROM php:cli
ENV LARAVEL_WEBSOCKETS_SSL_LOCAL_CERT=...
ENV LARAVEL_WEBSOCKETS_SSL_LOCAL_PK=...

所有建议都与docker或配置相关,因为不幸的是,您给PHP开发人员留下了很少的信息来帮助您。如果您的套接字没有打开,或者正在打开,但是在默认的配置下,什么将是非ssl。在尝试调试从其他应用程序到它的连接之前,请先确定套接字是否已打开。您可以从HTTP网站连接到WS和WSS。从HTTPS连接到WSS是可能的。

票数 0
EN

Stack Overflow用户

发布于 2022-05-07 01:48:40

我同意@yergo,听起来你有一个错误的配置,你可以通过IP而不是域点击它,检查你的env在码头容器内。“码头-exec -it $”。如果响应为空,则不将env设置应用于容器。

票数 0
EN

Stack Overflow用户

发布于 2022-05-02 11:45:02

这可能是一个愚蠢的问题,但您确定端口6001没有被防火墙阻塞吗?

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71886271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档