为什么Laravel广播事件总是使用"laravel_database_channel"频道以及如何更改它?



我尝试在某些事情的项目中加入 Laravel-echo。 我正在使用 docker-compose 容器,并为 redis 和 Laravel-echo-server 添加了 2 个容器。所有容器工作正常。(php, nginx, postgres, redis, laravel-echo(

为 广播和 redis 设置 .env。 为广播制作事件并尝试使用简单的执行脚本

事件(新的合法化进口商消息("测试"((;

在客户端js(Vue(上,我可以连接到Laravel回声。

事件始终使用"laravel_database_channel">

问题是我不知道我必须在哪里更改事件使用我的频道而不是"laravel_database_channel">

我尝试更改"广播"功能,但它不起作用。

.env 文件

BROADCAST_DRIVER=redis
CACHE_DRIVER=file
QUEUE_CONNECTION=redis
SESSION_DRIVER=file
SESSION_LIFETIME=120
REDIS_HOST=redis
REDIS_PASSWORD=null
REDIS_PORT=6379

Laravel-echo-server.json

{
"authHost": "nginx",
"authEndpoint": "/broadcasting/auth",
"clients": [],
"database": "redis",
"databaseConfig": {
"redis": {
"port": "6379",
"host": "redis"
}
},
"devMode": true,
"host": "",
"port": "6001",
"protocol": "http",
"socketio": {},
"secureOptions": 67108864,
"sslCertPath": "",
"sslKeyPath": "",
"sslCertChainPath": "",
"sslPassphrase": "",
"subscribers": {
"http": true,
"redis": true
},
"apiOriginAllow": {}
}

事件文件

class LegalizationImporterMessage implements ShouldBroadcast
{
use  SerializesModels;
public $message;
/**
* Create a new event instance.
*
* @return void
*/
public function __construct($message)
{
$this->message = $message;
}
/**
* Get the channels the event should broadcast on.
*
* @return IlluminateBroadcastingChannel|array
*/
public function broadcastOn()
{
return new Channel('channel');
}
}
laravel-echo_1  | Channel: laravel_database_channel
laravel-echo_1  | Event: AppEventsLegalizationImporterMessage
laravel-echo_1  | Channel: laravel_database_channel
laravel-echo_1  | Event: AppEventsLegalizationImporterMessage
laravel-echo_1  | Channel: laravel_database_channel
laravel-echo_1  | Event: AppEventsLegalizationImporterMessage
laravel-echo_1  | Channel: laravel_database_channel
laravel-echo_1  | Event: AppEventsLegalizationImporterMessage
laravel-echo_1  | Channel: laravel_database_channel
laravel-echo_1  | Event: AppEventsLegalizationImporterMessage
laravel-echo_1  | Channel: laravel_database_channel
laravel-echo_1  | Event: AppEventsLegalizationImporterMessage
laravel-echo_1  | Channel: laravel_database_channel
laravel-echo_1  | Event: AppEventsLegalizationImporterMessage
laravel-echo_1  | Channel: laravel_database_channel
laravel-echo_1  | Event: AppEventsLegalizationImporterMessage

这是由配置/数据库.php中的config('database.redis.options.prefix')设置的。要设置空白前缀,请将以下内容添加到您的.env

REDIS_PREFIX=

这将确保您没有预期的前缀,并且您的广播现在应该可以工作。

相关内容

最新更新