Pusher没有在Laravel 5.3中显示消息

时间:2016-09-03 06:39:19

标签: php laravel pusher laravel-5.3

我是Pusher和Laravel Echo的新手并且一步一步地学习它。我试图在我的新项目中实现它但不知何故,我无法理解这个推动器库如何与Laravel Echo一起工作。

我正在做的是,在管理员注册时,我只想检查我所做的是否正确。我只是想在我的推送仪表板帐户的调试控制台上查看我生成的事件的输出。

我创建了一个事件3,其中包含以下内容:

AdministratorGenerated

在bootstrap.js文件中,我有:

class AdministratorGenerated implements ShouldBroadcast
{
    use InteractsWithSockets, SerializesModels;

    public $user;

    /**
     * Create a new event instance.
     *
     * @return void
     */
    public function __construct(User $user)
    {
        $this->user = $user;
    }

    /**
     * Get the channels the event should broadcast on.
     *
     * @return Channel|array
     */
    public function broadcastOn()
    {
        //return new PrivateChannel('administrator');

        // To send it as public channel to pusher
        return['administrator'];
    }
}

在成功注册表单后,我正在发起一个事件

import Echo from "laravel-echo"

window.Echo = new Echo({
    broadcaster: 'pusher',
    key: 'my-pusher-key',
    cluster: 'ap1',
    encrypted: true
});

window.Echo.channel('administrator')
    .listen('AdministratorGenerated', (e) => {
        console.log(e);
    });

此活动将触发欢迎电子邮件并设置默认帐户。

但是,当我在Pusher仪表板中调试控制台时,我所看到的是以下内容:

enter image description here

编辑1:

这是event(new AdministratorGenerated($registeredUser)); 文件:

.env

这是APP_ENV=local APP_KEY=base64:toktfSBbJM0vbylxhT/zHXOi7zVga9jsliB/mtE96HY= APP_DEBUG=true APP_LOG_LEVEL=debug APP_URL=http://localhost DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=larammerce_v1 DB_DATABASE_TESTING=larammerce_v1_testing DB_USERNAME=root DB_PASSWORD=root BROADCAST_DRIVER=pusher CACHE_DRIVER=file SESSION_DRIVER=file QUEUE_DRIVER=database REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379 # All of the below values are correct MAIL_DRIVER=smtp MAIL_HOST=mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=username MAIL_PASSWORD=password MAIL_ENCRYPTION=null # All of the below values are correct PUSHER_APP_ID=id PUSHER_KEY=key PUSHER_SECRET=secret 配置文件

broadcasting.php

我在做什么错?任何人都可以帮我解决这个问题吗?

提前致谢。

1 个答案:

答案 0 :(得分:4)

您的活动似乎没有正确到达Pusher。可能是您的广播配置配置错误。

首先检查xercesImpl.jar并为您的Pusher连接定义群集:

config/broadcasting.php

'options' => [ 'cluster' => 'your_cluster', ] 文件中设置默认值BROADCAST_DRIVER=pusher

再次尝试触发.env事件,看看是否在Pusher调试控制台中记录。

您还使用了PrivateChannel,因此AdministratorGenerated更有可能是window.Echo.channel('administrator')。再次跑了一口气。