Работаю над чатом с группами (Laravel + Next.js) и сейчас занимаюсь веб-сокетами (Laravel Reverb). Каждый элемент чат-группы в моем приложении содержит последнее сообщение и индивидуальное для каждого пользователя (члена группы) количество непрочитанных сообщений (как в Telegram). Когда пользователь добавляет сообщение в чат, я хочу отправить веб-сокет всем участникам этого чата.
Вижу два способа организации веб-сокетов:
1. Отправлять одно и то же событие (например, «chat_updated») без каких-либо дополнительных данных на канал, связанный с группой чата. При получении этого события участник чата будет запрашивать метод API, который возвращает информацию о чате с последним сообщением и количество непрочитанных сообщений для текущего пользователя.
2. Отправлять событие «chat_updated» отдельно для каждого пользователя-участника группы (на канал этого пользователя) сразу с индивидуальными дополнительными данными, содержащими информацию о чате с последним сообщением и количеством непрочитанных сообщений для этого пользователя. В этом случае я думаю, мне нужно понять на бэкэнде, кто находится в сети и отправлять событие только для них?
Посоветуйте пожалуйста, какой вариант (а может другой) более оптимален в моем случае.