0

大家好,我真的很困惑,因为我已经阅读了有关如何通过这样做在广播中传递值的文档。

public function broadcastOn()
{
 return new PresenceChannel('room.'.$this->message->room_id);
}

它给了我一个未经授权的身份验证错误。似乎参数没有在broadcastOn中读取,而是在Echo.join中读取,因为当我这样做时一切正常。

Echo.join('room.' + 1)
.listen('NewMessage', (e) => {
    //
});

但我不想将 1 传递给我的所有加入,我需要它是动态的。有没有办法将 $this->message->room_id 传递给 Echo.join?如果有帮助,这里是我的 channels.php

Broadcast::channel('room.{roomId}', function ($user, $roomId) {
   return //logic is here
});

我已经尝试过文档中写的内容

Echo.join('room.${roomId}')
    .here(...)
    .joining(...)
    .leaving(...)
    .listen('NewMessage', (e) => {
        //
    });

但它给了我一个无效的频道名称异常。我搜索了整个互联网,但没有答案。也许我在这里遗漏了一些明显的东西。请发送帮助。

4

1 回答 1

0

如果你想使用模板文字,它们应该在 之间backticks,而不是单引号,所以你应该订阅:

Echo.join(`room.${roomId}`)
    .here(...)
    .joining(...)
    .leaving(...)
    .listen('NewMessage', (e) => {
        //
});
于 2017-10-30T19:30:49.490 回答