Laravel在随机频道名称上广播

时间:2020-05-16 18:34:18

标签: laravel redis laravel-echo broadcasting

我正在尝试使用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一起使用

0 个答案:

没有答案