Задать вопрос
valexeich
@valexeich

Как сделать реализацию чата как в мессенджерах?

Здравствуйте, я хочу сделать что-то типо telegram но не могу понять как лучше реализовать одну вещь, что делать если пользователь А решил найти пользователя B по поиску, и когда он его нашел то открывает с ним чат, но сообщений между ними ещё не было (то есть чат не создан), что должно происходить при отправке первого сообщения пользователем А пользователю B? Я придумал только создавать в базе данных комнату и после делать вебсокет соединение по chat_id. Не могли бы подсказать как лучше это все таки реализовать.
  • Вопрос задан
  • 176 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
@alexalexes
что должно происходить при отправке первого сообщения пользователем А пользователю B?

До отправки сообщения на клиенте держится в памяти заготовка комнаты.
После отправки сообщения сервер оповещает все экземпляры клиента пользователей A и B, что создал комнату между A и В (A и B могут открыть несколько экземпляров программ под своими логинами).
Если экземпляры клиентов открывали заготовку комнаты у себя, которая по врЕменным параметрам участников соответствует реальной комнате A и В, то эти экземпляры клиентов синхронизируют свое состояние с тем, что прислал сервер, то есть делают отображение комнат реальным.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
EreminD
@EreminD
Кое-что умею
на таких вводных, как вариант, можно прибегнуть к ленивому созданию:
если chat_id == null, создаем комнату.
тут, главное, на параллелизме себе в ногу не выстрелить
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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