为什么我的 Laravel-echo-server 接收广播频道的时候,要开启队列监听?

我现在做广播系统测试需要两个终端,一个呢开启laravel-echo-server
laravel-echo-server start
然后还要另外一个终端,开启队列监听,
php artisan queue:listen
如果不开启队列监听,那那个laravel-echo-server就不能收到channel信号,类似下面的
Channel: BlogView
Event: App\Events\BlogView
是lavavel-echo-server要依靠queue:listen吗,还是要另外设置下?

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2

你也可以用 sync 同步模式,就不需要开启队列了。

4年前 评论
donggan (楼主) 4年前
donggan (楼主) 4年前

文件中有寫到必須要開啟隊列才能使用廣播

在开始广播事件之前,你还需要配置和运行 队列监听器 。所有的事件广播都是通过队列任务来完成的,因此应用程序的响应时间不会受到明显影响。

解決方式可以像 likunyan 所述,在 .env 中將 QUEUE_CONNECTION 改為 sync,即可開啟同步模式
另外如何在後台運行 laravel-echo-server,可以使用 supervisor,參考 這裡,配置如下:

[program:echo-server]
directory=/home/vagrant/path/to/your/project
command=/usr/bin/laravel-echo-server start
autostart=true
autorestart=true
user=vagrant
redirect_stderr=true
stdout_logfile=/home/vagrant/path/to/your/project/storage/logs/echoserver.log
4年前 评论
donggan (楼主) 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!