laravel

关于supervisor运行laravel-echo-server

2020年7月16日 laravel, nodejs

[program:project-laravel-echo-server]
process_name=%(program_name)s_%(process_num)02d
command=npx laravel-echo-server start –dir=/usr/local/www/project
directory=/usr/local/www/project/
autostart=true
autorestart=true
user=root
numprocs=1
redirect_stderr=true
stdout_logfile=/home/username/log/enterprise4.laravel-echo-server.log
 

关键红色字段部分。正常本地测试直接npx laravel-echo-server start就完事,通过supervisor就不能直接起作用

laravel broadcast laravel-echo receive nothing from private channel

2020年7月16日 laravel

laravel broadcast laravel-echo receive nothing from private channel

使用laravel的广播系统来接收notification通知,折腾了2天。。。

无论广播怎么发送成功,前端就是没反应,获取不到广播,google了2天没有结果,最后不知道从哪个报错信息中发现实际监听的应该 是带前缀的频道名。。。

.env使用redis处理广播

BROADCAST_DRIVER=redis

默认配置config/database.php里redis.options.prefix由APP_NAME+_database_组成,导致所有redis key都是以laravel_database_为前缀的。

监听事件时Echo.private('channel-name') or Edho.channel('channel-name')就无法接收广播

需要监听Echo.private('laravel_database_channel-name') 或 Echo.channel('laravel_database_private-channel-name') ….具体你遇到什么情况,你的前缀是什么,替换就是

 

当然,也可以把config/database.php里redis.options.prefix设成空,一切按文档都没问题