VGrabko
@VGrabko
Golang, Php, Js

Как правильно синхронизировать WS и ajax?

У меня есть ajax и ws клиенты но чат 1. Я думаю сделать как то так.
ea6cb6e126b34cc690377f65e718f993.png

При входе в чат любого пользователя идёт запрос к ajax версии для получения сообщений с бд. Если юзер поддерживает ws то конектимся к вс серверу. При отправке сообщения ws сервер отправляет его всем подключённым пользователям и добавляет в бд. При отправке сообщения ajax серверу он отправляет сообщение сокету и ждёт ответа (дабы сообщение точно добавилось в бд) как только сокет ответил он тянет из базы n сообщений и отдаёт их пользователю. Чат ajax не обновляется автоматом (пользователь должен жать "обновить").
  • Вопрос задан
  • 326 просмотров
Решения вопроса 1
MetaDone
@MetaDone
Хорошо сформулированный вопрос - 50% решения
у меня на одном проекте сделано просто - первый запрос загружает нужные сообщения из базы, а клиент их рендерит. Если собеседник шлет сообщение - то сначала идет аяксовая вставка, после - отправка сообщений через веб-сокет. На бекенде доставкой через вебсокет занимается нода, можно впаять демона на чем угодно, кому как удобнее. Его задача - только передать нужному клиенту сообщение в сокет и все. Получается что сообщение будет в базе и если собеседник имеет возможность - он будет получать все что нужно в реальном времени
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы