我正试图用redis将事件广播到专用频道,但我可以找出为什么在发送事件时频道会随机更改。
控制器.php:
public function sendMessage() {
event(new TestEvent(1, 'test', 'App.User.1'));
}
频道.php
Broadcast::channel('App.User.{id}', function ($user, $id) {
return [
'id' => $user->id,
'image' => null,
'full_name' => $user->name
];
});
测试事件.php
public function broadcastOn()
{
return new PrivateChannel($this->channel);
}
在我尝试发送事件之前,一切似乎都正常。当我查看laravelecho服务器日志时,它看起来好像每次触发sendmessage事件时都将事件发送到错误的通道。i、 e.第一个触发器导致向发送广播
presence-App.User.1
第二个触发器发送到:
App.User.1
我曾尝试向频道添加private-prefix,如下所示:
event(new TestEvent(1, 'test', 'private-App.User.1'));
它将广播发送到正确的频道,但下一个触发器将其发送到:
presence-private-App.User.1
这是非常奇怪的,不能找出什么是错误的。我甚至尝试过用postman和broadcaston()方法中的dd命令对其进行调试,但似乎都没有达到这一点:/
我错过了什么?
我正在使用docker和laravel framework v7.11.0
暂无答案!
目前还没有任何答案,快来回答吧!