使用pusher和vueJS进行的Laravel echo事件广播不像文档

时间:2017-10-30 19:02:57

标签: laravel vue.js pusher laravel-echo

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

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) => {
        //
    });

但它给了我一个无效的频道名称例外。 我搜索了整个互联网,但没有回答。也许我错过了一些明显的东西。请发送帮助。

1 个答案:

答案 0 :(得分:0)

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

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