我正在尝试使用Redis将事件广播到私人频道,但可以弄清楚为什么在发送事件时随机更改频道。
Controller.php:
public function sendMessage() {
event(new TestEvent(1, 'test', 'App.User.1'));
}
channels.php
Broadcast::channel('App.User.{id}', function ($user, $id) {
return [
'id' => $user->id,
'image' => null,
'full_name' => $user->name
];
});
TestEvent.php
public function broadcastOn()
{
return new PrivateChannel($this->channel);
}
在我尝试发送活动之前,一切似乎都正常。当我查看Laravel Echo Server日志时,每次触发发送消息事件时,它似乎都将事件发送到错误的通道。即首次触发导致向
发送广播presence-App.User.1
第二个触发器将其发送到:
App.User.1
我试图像这样向通道添加private-前缀:
event(new TestEvent(1, 'test', 'private-App.User.1'));
它将广播发送到正确的频道,但是下一个触发器将其发送到:
presence-private-App.User.1
这很奇怪,无法弄清楚这是怎么回事。我什至尝试使用Postman调试它,并在broadcastOn()方法中使用dd命令,但看起来甚至没有达到这一点:/
我想念什么?
我将docker与Laravel Framework v7.11.0一起使用