在Pusher API Laravel 5.4中,回调功能无效

Pan*_*kaj 13 laravel laravel-5.4

问题

我可以确认Pusher API正在接收消息.我在Pusher网站的Debug控制台中看到了.但听回调根本不起作用.

我正在按照本教程在Laravel 5.4中实现Pusher

以下是一步一步完成的事情.

  1. composer require pusher/pusher-php-server
  2. npm install --save laravel-echo pusher-js
  3. 在你的实例中实例化Echo实例 resources/assets/js/bootstrap.js
  4. envbootstrap.js文件中和文件中初始化了推送键.

最后,我在下面用刀片写了代码.

<script>
    window.Echo.channel('SendMessageChannel.1')
        .listen('App.Events.SendMessageEvent', (e) => {
            console.log(e);
        });
</script>
Run Code Online (Sandbox Code Playgroud)

控制器代码

broadcast(new SendMessageEvent("Hi"))->toOthers();
Run Code Online (Sandbox Code Playgroud)

事件代码

class SendMessageEvent implements ShouldBroadcast
{
    use Dispatchable, InteractsWithSockets, SerializesModels;

    public $Message;

    public function __construct($message)
    {
        $this->Message = $message;
    }

    public function broadcastOn()
    {
        return new PrivateChannel('SendMessageChannel.2');
    }

}
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

cre*_*re8 5

  1. 你必须听:SendMessageEvent没有命名空间.
  2. 当您收听私人频道时,您需要倾听private-SendmessageChannel或使用Echo.private('SendmessageChannel')

因为我们通过teampeak在某些部分修复了这个问题,所以很难在这个答案中详细解释它.

一个问题是该事件在客户端开始收听之前被触发.最好的方法是使用推送器控制台进行调试并触发自定义事件.