在我的laravel应用程序,我想发送一个通知给一个特定的用户使用user。
我将此代码放入我的方法中:
$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);
});
但这会使通知出现在任何用户面前。这还存在另一个问题,即用户应该只在主页上接收通知!
那么,我应该如何向特定用户发送通知并使用户从任何页面接收通知呢?
发布于 2017-03-26 22:28:10
若要使用户从任何页面接收它,请将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://stackoverflow.com/questions/43035079
复制相似问题