无法从频道中删除 laravel_database_ 前缀

can't remove laravel_database_ prefix from channel

我正在设置 Laravel 回显来广播事件。但是每当我尝试向频道广播时,频道名称都会自动获得前缀:'laravel_database_'

我尝试将事件中的 return 切换为常规 'Chanel',如下所示:

public function broadcastOn()
{
return new Channel('public');
}

但是当我查看 laravel-echo-server 日志时,我发现它仍在广播:'laravel_database_public'.

这样我需要在我的 JS 中执行以下操作:

Echo.channel('laravel_database_public').listen('MessageSent', ({message}) => {
                console.log(message);
            });

当然,我想删除前缀(或弄清楚为什么它在那里)。希望有人能帮我解决这个问题。提前致谢。

这可以在 config/database.php 中配置(我相信甚至可以移动)在

'redis' => [
    'options' => [
        'prefix' => // change here.
    ]
]

已接受的答案不适用于 laravel-echo-server

解决方案是让整个 Redis Laravel 配置 保持原状 并 运行 版本 ^1.6.0 laravel -echo-server 在 laravel-echo-server.json 配置文件中使用正确的 keyPrefix 选项:

{
   "databaseConfig": {
     "redis": {
       "keyPrefix": "laravel_database_"
      }
  }
}

Source

与 Laravel 7 相比,config/database.php 看起来像这样

'redis' => [

        'client' => env('REDIS_CLIENT', 'predis'),

        'options' => [
            'cluster' => env('REDIS_CLUSTER', 'redis'),
            'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_') . '_database_'),
        ],
    ]

因此它会在 .env 文件中搜索您的 REDIS_PREFIX 变量,如果有 none,则它会生成 laravel_database_ 或根据您设置的任何内容 APP_NAME 到您的 .env 文件中。

您只需设置 REDIS_PREFIX。您可以将其留空,这样就完全没有前缀了。