2017-03-26 3 views
2

In meiner Laravel App möchte ich eine Benachrichtigung an einen bestimmten Benutzer mit Pusher senden.senden Sie Pusher Benachrichtigung an bestimmte Benutzer - Laravel

Ich habe diesen Code in meiner Methode:

$pusher = App::make('pusher'); 

$pusher->trigger('notification-channel', 
        'notification-event', 
        array('text' => 'this is a notification')); 

return view('home'); 

und setzen diese in 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); 
    }); 

aber das macht Benachrichtigung für jeden Benutzer angezeigt werden. Dies hat auch ein weiteres Problem, dass der Benutzer nur auf der Homepage sein sollte, um die Benachrichtigung zu erhalten!

Also, was soll ich tun, um eine Benachrichtigung an einen bestimmten Benutzer zu senden und den Benutzer von jeder Seite erhalten ??

Antwort

1

Damit der Benutzer es von einer beliebigen Seite erhält, geben Sie Ihren Pusher-Code in Ihre layout.blade.php ein, falls Sie welche haben. Oder jede andere Datei, die alle Seiten erweitern.

es zu einem bestimmten Benutzer gehen zu machen, können Sie den Benutzer-ID verwenden, indem sie an den Kanal wie

'notification-channel:' . $user->id 

Also in Ihrer Layout-Datei hören Sie

var user = <?php echo $user ; ?>; 
var channel = pusher.subscribe('notification-channel:' + user.id); 

auf diesen Kanal Anhänge Obwohl nur Benutzer mit dieser einfachen Benachrichtigung die Benachrichtigung erhalten können, bleibt Ihre Benachrichtigung öffentlich. Das heißt, jeder kann seine ID manipulieren und Benachrichtigungen anderer erhalten. Wenn Sie private Mitteilungen möchten, können Sie Anweisungen hier folgen: https://laravel.com/docs/5.4/broadcasting#authorizing-channels

+0

dieser Versuch, bekam ich diese Fehlermeldung: PusherException in Pusher.php Linie 257: Ungültige Kanalnamen notification-Kanal: 22 @EddyTheDove –

+1

Meine schlecht, versuchen zu ersetzen der Doppelpunkt um den Punkt. So wird es "Benachrichtigungskanal". . $ user-> id; ' – EddyTheDove

+0

Die Kanalbenennungskonvention erlaubt kein": "Zeichen. Also habe ich diesen Fehler behoben, indem ich den Kanalnamen auf "Benachrichtigungskanal" geändert habe. $ user-> id @EddyTheDove –

Verwandte Themen