在我的 laravel 应用程序中,我想使用 Pusher 向特定用户发送通知。
我将此代码放入我的方法中:
$pusher = App::make('pusher');
$pusher->trigger( 'notification-channel',
'notification-event',
array('text' => 'this is a notification'));
return view('home');
并将其放入 home.blade.php :
<script src="//js.pusher.com/3.0/pusher.min.js"></script>
<script>
var pusher = new Pusher("{{env("PUSHER_KEY")}}");
var channel = pusher.subscribe('notification-channel');
channel.bind('notification-event', function(data) {
alert(data.text);
});
但这会使通知向任何用户显示。
这还有另一个问题,用户应该只能在主页上接收通知!
那么,我应该怎么做才能向特定用户发送通知并让用户从任何页面收到通知?
要使用户从任何页面接收它,请将您的 Pusher 代码放入您的layout.blade.php
如果你有任何。或者所有页面都将扩展的任何其他文件。
要使其发送给特定用户,您可以通过将用户 ID 附加到频道来使用,例如
'notification-channel:' . $user->id
所以在你的布局文件中你可以收听该频道
var user = <?php echo $user ; ?>;
var channel = pusher.subscribe('notification-channel:' + user.id);
尽管只有那么简单的用户可能会收到通知,但您的通知仍然是公开的。这意味着任何人都可以操纵自己的 ID 并接收其他人的通知。如果您想要私人通知,可以按照此处的说明进行操作:https://laravel.com/docs/5.4/broadcasting#authorizing-channels https://laravel.com/docs/5.4/broadcasting#authorizing-channels
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)