При выходе из пушера не работал широковещательный приемник - PullRequest
1 голос
/ 07 апреля 2019

я реализовал широковещательное уведомление в моем приложении с помощью pusher. это в прямом эфире. это работает хорошо, но проблема в том, что когда я выхожу из пушера или закрываю окно пушера, я не могу получить уведомление. если я снова войду в пушер, то уведомление будет работать.

в клинке:

Echo.channel('NotificationChannel')
  .listen('NotificationEvent', (e) => {
      if( {{Auth::user()->id}} == e.to_doctor_notification.id){
        toastr.success('You have a new patient request.', e.to_doctor_notification.name, {timeOut: 50000, progressBar: true, positionClass: 'toast-bottom-left', closeButton: true, newestOnTop: true, extendedTimeOut: 100000})
      };
  });

В контроллере:

broadcast(new NotificationEvent($to_doctor_notification));

в NotificationEvent:

public function broadcastOn(){
    return new Channel('NotificationChannel');
}

В bootstrap.js:

import Echo from "laravel-echo"
window.Pusher = require('pusher-js');
window.Echo = new Echo({
    broadcaster: 'pusher',
    key: 'app-key',
    cluster: 'ap2',
    encrypted: true
});

1 Ответ

0 голосов
/ 16 апреля 2019

Я решаю эту проблему.У меня слишком много Javascript файл включен.вот почему это не работает.

я включаю ссылку-толкатель это ссылка-толкатель

Это код, полученный на уведомлении, на странице которого нужно увидеть уведомление.

<script>
      var pusher = new Pusher('app-key', {
      cluster: 'ap2',
      forceTLS: true
     });

var channel = pusher.subscribe('NotificationChannel');
channel.bind('EchoEvent', function(e) {
  if( {{Auth::user()->id}} == e.to_doctor_notification.id){
    toastr.success('You have a new patient request.', e.to_doctor_notification.name, {timeOut: 50000, progressBar: true, positionClass: 'toast-bottom-left', closeButton: true, newestOnTop: true, extendedTimeOut: 100000})
  };
});

...