你们有谁用laravel-echo,但是是多台服务器的
我把执行发送消息的代码
event(new \App\Events\Notification($user, ‘暂时没有符合的订单’));
和处理消息的队列均放在A服务器
php artisan queue:work –queue=echo –tries=1
下面放在B服务器
然后执行laravel-echo-server start放在B服务器
B服务器通过配置
LARAVEL_ECHO_SERVER_REDIS_HOST=A服务IP地址
LARAVEL_ECHO_SERVER_REDIS_PASSWORD=
LARAVEL_ECHO_SERVER_REDIS_PORT=6379
连接到A服务器
结果无法正常通知
你这描述也太笼统了,也没个代码或 debug 信息。你可以通过 laravel-echo-server 的 debug 模式,在控制台中查看调试信息先自己分析一波。
S1:看看在 B 机器启动的 laravel-echo-server 有没有真的连接上 A 机器的 redis
S2:在 A 机器上,查看 event 事件是否真的被触发,在 redis 的队列中能否找到待执行的 event 任务
S3:前端是否成功订阅了你那个事件中广播的频道
S4:事件中广播的频道是否与前端订阅的频道不符等等…
自己试着先找找原因吧,没法帮你了,记得改代码后重启 laravel-echo-server 和 queue 队列
我打算开发模式后,发现是Laravels的原因,会导致403 不过我两台服务器的情况,一台可以,一台还是会出现问题,头大,同样一模一样的情况
⚠ [2:10:57 PM] - h9s4k-SMuQBDodYbAAFe could not be authenticated to private-notification.30485 {"message":"\u9875\u9762\u8fc7\u671f\uff0c\u8bf7\u5237\u65b0\u9875\u9762"} Client can not be authenticated, got HTTP status 422 [2:10:57 PM] - Preparing authentication request to: www.kyp.com
今天才发现有一个开发者模式能看到错误。 laravel-echo-server start运行后 会报这个错误,你们有谁碰到吗,message的内容 提示的是页面过期,请刷新页面,这个是token失效导致的。
会不会是跨域名导致的,我有一个站一个是www一个是m。m这个域名配置到www去认证是可以。但是这个站应该是同时启用两个域名,一直报这个错误
其它站不会报这个错
建议排查下laravel-echo-server中的redis配置