【发布时间】:2018-01-13 19:15:47
【问题描述】:
我正在尝试构建一个聊天应用程序,为此,我正在使用 Laravel 的 Echo 和 Laravel echo 服务器。想法是监听消息通知。
我已经按照:
https://laravel.com/docs/master/notifications
https://laravel.com/docs/master/broadcasting
resources/assets/js/bootstrap.js:(当然我已经使用 NPM 编译了)
import Echo from 'laravel-echo'
window.Echo = new Echo({
broadcaster: 'socket.io',
host: window.location.hostname + ':6001'
});
laravel-echo-server.json:
{
"authHost": "http://laravel-notifications.local",
"authEndpoint": "/broadcasting/auth",
"clients": [],
"database": "redis",
"databaseConfig": {
"redis": {},
"sqlite": {
"databasePath": "/database/laravel-echo-server.sqlite"
}
},
"devMode": true,
"host": null,
"port": "6001",
"protocol": "http",
"socketio": {},
"sslCertPath": "",
"sslKeyPath": ""
}
ChatController.php(触发通知)
$toUser = User::find($toUser)->notify(new MessageNotification($message));
MessageNotification.php
public function toBroadcast($notifiable)
{
return new BroadcastMessage([
'message' => $notifiable,
]);
}
刀片视图(监听通知):
window.Echo.private('App.User.' + window.Laravel.user.id)
.notification((notification) => {
console.log(notification); // Not getting executing
});
当我访问该页面时,我看到来自 Laravel Echo 服务器的以下日志:
[9:34:41 AM] - XnmH1wzMJM-5VON-AAAA 已通过身份验证:private-App.User.7
[9:34:41 AM] - XnmH1wzMJM-5VON-AAAA 加入频道:private-App.User.7
但是当我触发该通知时,我没有看到浏览器控制台上记录了任何内容。
完整的源代码:
https://github.com/xparthxvorax/Laravel-Notifications
注意:我可以成功收听事件,但不能收听通知。
【问题讨论】:
标签: laravel socket.io laravel-5.4 laravel-echo laravel-notification