Как обновлять только те чаты, что пользователь еще не видит?
Всем привет.
Логика такая:
- Человек зашел на сайт - ему загрузились все чаты
- Потом врубается Ajax, который каждую секунду проверяет, есть ли новые чаты и выдает свежее.
Вот, как выгружать только диалоги, которые не видит пользователь?
Из очевидного - сделать какую-то переменную, куда каждый чат будет выгружать свой id и ajax функция, каждый раз будет её отправлять, по ней и вести сортировку. Но есть более правильный способ?
Terras: проблема просто в том, что вам придется всё переписывать под сокеты в том числе и бекенд. Двойная работа. А если так как вы хотите, то видимо каждый раз тащить все посты и сортировать по времени. Иначе даже не представляю как то сделать.
sim3x: поможет не выполнять работу дважды, не досить сервер понапрасну аяксом, научит писать реал-тайм приложения и научит писать правильно сразу же, а не как попало. И да, такие вопросы у человека точно не возникнут, как в топике. Или вы не видите элементарных плюсов и считаете, что досить сервер - правильное решение?
sim3x: Я повторю свой вопрос. И отвечу на ваш: такой проблемы не возникнет и избавит от последующих проблем, о которых я уже говорил. Мой же вопрос остается в силе.
sim3x: Вы действительно считаете, что заведомо неправильное решение - верно? И то, что нужно писать заведомо ущербное приложение? Вы серьезно? Почему я считал, что разработчики должны наставлять на истинный путь, а не помогать правильно угробить свою разработку?Или это только вы такой?)
sim3x: Это вопрос правильной архитектуры приложения. Сперва подгружаем все комнаты, которые созданы на момент захода пользователя, после, при создании новой комнаты неким пользователем, оповещаем всех пользователей в общей комнате и рассылаем сообщение, а на клиенте рендерим разметку и сортируем, как душе угодно. Вся прелесть сокетов в том, что не надо заморачиваться с такими задачами, ибо обновление информации происходит в реальном времени. В случае падения соединения и последующем реконекте тупо подгружаем все комнаты. Вопрос, надо ли заморачиваться с такой задачей, как в топике? Или вы видите проблемы реализации оного?
Руслан: те
У ТС есть 10к чатов, с 20Мб переписки, то
"В случае падения соединения и последующем реконекте тупо подгружаем все комнаты."
подгружаем ему 10к * 20Мб
sim3x: Опять вопрос архитектуры. Зачем тащить всю переписку вместе с чатами, если надо вытянуть чаты? При открытии комнаты подгружаем какое то количество сообщений, но никак не все. Более того, если посмотреть на реализацию приложений с чатами и комнатами, то увы и ах, они делаются точно так же.
Чтоб не заморачиватся с вебсокетами лучше не городить велосипед с аяксом, а использовать saas комет сервер. Сразу и работать будет нормально, и труда не много нужно. А потом когда будет понятно надо оно или нет уже переходить на опенсорс решение и хостится у себя на vps. Тем более что у этих двух решений апи одинаковое и поэтому в коде менять не чего не придётся.