我尝试将Laravel-echo包含在项目中。我正在使用docker-compose容器,并为redis和Laravel-echo-server添加了2个容器。所有容器都工作正常。(php,nginx,postgres,redis,laravel-echo)
为广播和redis设置.env。为广播制作事件,并尝试使用简单的执行脚本
event(新建测试(“LegalizationImporterMessage”));
在客户端js (Vue)上,我可以连接到Laravel echo。
事件总是使用"laravel_database_channel“
问题是,我不知道必须在哪里更改事件使用我通道而不是"laravel_database_channel“的smth
我尝试过更改"broadcastOn“函数,但它不起作用。
.env文件
BROADCAST_DRIVER=redis
CACHE_DRIVER=file
QUEUE_CONNECTION=redis
SESSION_DRIVER=file
SESSION_LIFETIME=120
REDIS_HOST=redis
REDIS_PASSWORD=null
REDIS_PORT=6379Laravel-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": {}
}EventFile
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 \Illuminate\Broadcasting\Channel|array
*/
public function broadcastOn()
{
return new Channel('channel');
}
}laravel-echo_1 | Channel: laravel_database_channel
laravel-echo_1 | Event: App\Events\LegalizationImporterMessage
laravel-echo_1 | Channel: laravel_database_channel
laravel-echo_1 | Event: App\Events\LegalizationImporterMessage
laravel-echo_1 | Channel: laravel_database_channel
laravel-echo_1 | Event: App\Events\LegalizationImporterMessage
laravel-echo_1 | Channel: laravel_database_channel
laravel-echo_1 | Event: App\Events\LegalizationImporterMessage
laravel-echo_1 | Channel: laravel_database_channel
laravel-echo_1 | Event: App\Events\LegalizationImporterMessage
laravel-echo_1 | Channel: laravel_database_channel
laravel-echo_1 | Event: App\Events\LegalizationImporterMessage
laravel-echo_1 | Channel: laravel_database_channel
laravel-echo_1 | Event: App\Events\LegalizationImporterMessage
laravel-echo_1 | Channel: laravel_database_channel
laravel-echo_1 | Event: App\Events\LegalizationImporterMessage发布于 2019-12-12 13:29:17
这是由config('database.redis.options.prefix')在config/database.php中设置的。要设置空白前缀,请将以下内容添加到.env中
REDIS_PREFIX=这将确保您没有您想要的前缀,您的广播现在应该可以工作了。
https://stackoverflow.com/questions/57807511
复制相似问题