BostonGeorge
@BostonGeorge
Айтишник и юрист

Как правильно организовать веб сокеты для чата?

Работаю над чатом с группами (Laravel + Next.js) и сейчас занимаюсь веб-сокетами (Laravel Reverb). Каждый элемент чат-группы в моем приложении содержит последнее сообщение и индивидуальное для каждого пользователя (члена группы) количество непрочитанных сообщений (как в Telegram). Когда пользователь добавляет сообщение в чат, я хочу отправить веб-сокет всем участникам этого чата.

Вижу два способа организации веб-сокетов:

1. Отправлять одно и то же событие (например, «chat_updated») без каких-либо дополнительных данных на канал, связанный с группой чата. При получении этого события участник чата будет запрашивать метод API, который возвращает информацию о чате с последним сообщением и количество непрочитанных сообщений для текущего пользователя.

2. Отправлять событие «chat_updated» отдельно для каждого пользователя-участника группы (на канал этого пользователя) сразу с индивидуальными дополнительными данными, содержащими информацию о чате с последним сообщением и количеством непрочитанных сообщений для этого пользователя. В этом случае я думаю, мне нужно понять на бэкэнде, кто находится в сети и отправлять событие только для них?

Посоветуйте пожалуйста, какой вариант (а может другой) более оптимален в моем случае.
  • Вопрос задан
  • 1729 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы