Здравствуйте.
Если пользователь закрывает задачу, все, кто на него подписан должны получить уведомление об этом.
Что я пробовал сделать:
- Использовать оповещение на праватный канал (при срабатывании соответственного TaskCompletedEvent, который имплементирует ShouldBroadcast интерфейс) пользователя, который закрыл задачу (если это пользователь с id 1, то оповещение полетит на канал App.User.1). Но в этому случае, я должен подписывать каждого пользователя на всех тех, на кого он подписан (после его входа на сайт).
- Посылать оповещение (используя метод выше) но уже на публичный канал и уже на Frontend проверять по id кто должен его получить (но тогда, в теории, кто-то может изменить эти настройки на своей стороне и получать уведомления о всех пользователях (да, в этом случае не столь критично, но на будущее интересно))
- Вместо того, чтобы использовать broadcast в TaskCompletedEvent, вызывать метод toBroadcast в TaskCompletedNotification, который вызывается в TaskCompletedEvent. В таком случае, будет создано n-оповещений (где n - количество пользователей, которые подписаны на пользователя, который закрыл задачу).
Каким образом
лучше организовать realtime notifications на сайте? Какой метод будет более оптимальным? Т.к. Pusher имеет лимит на количество сообщений, важно их количетсво. Ну и с точки зрения производительности (если это влияет).
Надеюсь доступно сформулировал.
Спасибо