Я создаю приложение чата и пытаюсь выработать наиболее эффективный способ запроса нескольких потоков разговоров (как личных, так и групповых) из базы данных MongoDB.
Моя текущая идея - циклически проходить по пользователюконтакты на стороне клиента и отправьте запрос getConversation в мой REST API для каждого контакта.Это происходит после , когда данные профиля пользователя сначала были получены на сервере и отправлены клиенту, чтобы как можно быстрее заполнить некоторые части интерфейса чата, хотя я не уверен, что это оптимальноучитывая количество дополнительных запросов, которые я делаю (легко 25 - 50 за один раз).
В настоящее время я думаю, что есть 3 метода, которые я мог бы использовать:
1.) Отправить запросна сервер для пользовательских данных> циклически проходить через каждый контакт (частный и групповой) на сервере> получать каждый разговор из БД> отправлять весь пакет обратно клиенту и разделять данные в соответствующие (Vue / Vuex) модули.Всего запросов: 1 / Запрошенных данных: Большой
2.) * Что я делаю сейчас: отправляю первоначальный запрос данных пользователя> принимаю его на клиенте> перебираю контакты на стороне клиента>отправить отдельный запрос API для каждого контакта> заполнить разговоры, когда они возвращаются на клиент.Всего запросов:> 20 / Запрошенных данных: Малый
3.) Отправьте первоначальный запрос данных пользователя> получите его> отправьте один запрос на все разговоры.Я ожидаю, что это займет больше времени, чем вариант 2, но я могу ошибаться.Всего запросов: 2 / Запрошенных данных: средний
Моя цель - как быстро, так и эффективно извлекать как пользовательские данные, так и разговоры, поэтому я приветствую любые предложения или методы, которые вы использовали для достижения такого рода целей.,
Приветствия:)
Примечания:
Я использую Vue / Vuex / MongoDB / Express / SocketIO.