его комнатами:
имеем страницу сообщений. при ее открытии юзера подписываем на канал сокета messenger{user_id}
когда кто-то ему напишет сообщение, он это увидит в списке чатов.
когда юзер открывает чат с другим юзером, он подписывается на комнату chat{chat_id} откуда уже напрямую будет получать сообщения.
проблем нет, пока участников везде по 2. сервер знает в какой мессенджер отправлять уведомления. но как быть когда участников 5-10-100+? получается придется слать в 100 мессенджеров + комнату этого чата. это ж беда от которой даже центрифуга офигеет, или ларка. при каждом-то сообщении.. может я как-то не так спроектировал всё, но казалось вполне логично.
https://laravel.com/docs/8.x/broadcasting там все уже продумано, тебе просто нужно создавать комнаты и привязывать их к примеру к id пользователя, тогда сообщение можно будет отправить только ему
вопрос не в этом. тут получилась эдакая проблема N+1 с сокетом)
зачем? ты будешь отправлять только тому кому нужно
Обсуждают сегодня