NewMention.php 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. namespace App\Events;
  3. use Illuminate\Broadcasting\Channel;
  4. use Illuminate\Queue\SerializesModels;
  5. use Illuminate\Broadcasting\PrivateChannel;
  6. use Illuminate\Broadcasting\PresenceChannel;
  7. use Illuminate\Foundation\Events\Dispatchable;
  8. use Illuminate\Broadcasting\InteractsWithSockets;
  9. use Illuminate\Contracts\Broadcasting\ShouldBroadcastNow;
  10. use App\User;
  11. class NewMention implements ShouldBroadcastNow
  12. {
  13. use Dispatchable, InteractsWithSockets, SerializesModels;
  14. protected $user;
  15. protected $data;
  16. /**
  17. * Create a new event instance.
  18. *
  19. * @return void
  20. */
  21. public function __construct(User $user, $data)
  22. {
  23. $this->user = $user;
  24. $this->data = $data;
  25. }
  26. public function broadcastAs()
  27. {
  28. return 'notification.new.mention';
  29. }
  30. public function broadcastOn()
  31. {
  32. return new PrivateChannel('App.User.' . $this->user->id);
  33. }
  34. public function broadcastWith()
  35. {
  36. return ['id' => $this->user->id];
  37. }
  38. public function via()
  39. {
  40. return 'broadcast';
  41. }
  42. }