Laravel Websockets生产环境触发事件时出现Failed to connect to Pusher错误
问题解决方案
1. 域名解析校验
服务器本地无法解析你配置的my-domain-name是最常见诱因,先登录服务器执行测试命令:
curl -k https://my-domain-name:6001/laravel-websockets/health
如果返回ok说明服务正常,否则执行以下任意一种方案修复:
- 修改
config/broadcasting.php中pusher.options.host为127.0.0.1 - 编辑服务器
/etc/hosts文件,添加一行127.0.0.1 my-domain-name绑定解析
2. SELinux权限校验
CentOS默认SELinux会阻止PHP发起网络连接,登录服务器执行命令:
getsebool httpd_can_network_connect
如果返回httpd_can_network_connect --> off,执行命令开启权限即可:
setsebool -P httpd_can_network_connect on
3. SSL证书权限校验
检查websocket服务运行用户是否有权限读取你配置的SSL证书和密钥文件:
# 替换成你实际的证书路径 ls -l /home/my-user/<cetification_path>/my-cert.crt ls -l /home/my-user/<cetification_key_path>/my-key.key
如果权限不足,执行命令调整:
chmod 644 /home/my-user/<cetification_path>/my-cert.crt chmod 644 /home/my-user/<cetification_key_path>/my-key.key # 替换成你supervisor配置中运行websockets服务的用户 chown websock_user:websock_user /home/my-user/<cetification_path>/my-cert.crt chown websock_user:websock_user /home/my-user/<cetification_key_path>/my-key.key
4. 依赖版本适配
如果以上步骤都无效,尝试降级pusher-php-server版本适配Laravel Websockets:
composer require pusher/pusher-php-server:4.1.1 -W
内容的提问来源于stack exchange,提问作者mohamed allam
相关产品推荐
相关产品推荐

