我是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仪表板中调试控制台时,我所看到的是以下内容:
编辑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
我在做什么错?任何人都可以帮我解决这个问题吗?
提前致谢。
答案 0 :(得分:4)
您的活动似乎没有正确到达Pusher。可能是您的广播配置配置错误。
首先检查xercesImpl.jar
并为您的Pusher连接定义群集:
config/broadcasting.php
在'options' => [
'cluster' => 'your_cluster',
]
文件中设置默认值BROADCAST_DRIVER=pusher
。
再次尝试触发.env
事件,看看是否在Pusher调试控制台中记录。
您还使用了PrivateChannel,因此AdministratorGenerated
更有可能是window.Echo.channel('administrator')
。再次跑了一口气。