聊天应用程序 - 向 MongoDB 同时发送多个请求
Chat App - Sending multiple simultaneous requests to MongoDB
我正在构建一个聊天应用程序,并试图找到从 MongoDB 数据库中请求多个对话线程(私人和群组)的最有效方法。
我目前的想法是在客户端循环遍历用户的联系人,并为每个联系人向我的 REST API 发送一个 'getConversation' 请求。这发生在 用户配置文件数据首先在服务器上检索并发送到客户端后,以便尽快填充一些聊天界面,尽管我不确定如果考虑到我提出的额外请求的数量(一次很容易 25 - 50)这是最佳的。
我目前认为我可以使用 3 种方法:
1.) 向服务器发送用户数据请求 > 遍历服务器上的每个联系人(私人和群组) > 从数据库中获取每个对话 > 将整个包发送回客户端并分离数据进入相关的 (Vue / Vuex) 模块。请求总数:1 / 请求的数据:大
2.) * 我现在在做什么:发送用户数据的初始请求 > 在客户端接收它 > 遍历客户端的联系人 > 发送单独的 API 请求每个联系人 > 在对话返回客户端时填充对话。请求总数:> 20 / 请求的数据:小
3.) 发送对用户数据的初始请求 > 接收它 > 为 所有 对话发送单个请求。我预计这比选项 2 花费的时间更长,但我可能是错的。请求总数:2 / 请求的数据:中
我的 objective 是尽可能快速和高效地检索用户数据和对话,因此我欢迎您提出任何建议或您用来实现此类目的的技巧。
干杯:)
备注:
我正在使用 Vue/Vuex/MongoDB/Express/SocketIO。
TL;DR 我会选择第二个选项。
由于您希望您的应用尽可能快地加载并做出响应,因此您应该避免请求大块数据,您甚至可能最终不会在应用中使用这些数据。我会获取第一个(最新的)5-10 个对话,因为这些可能是用户想首先阅读的内容。然后,如果用户想要阅读更多您尚未从服务器获取的对话,您可以获取这些对话(可能还有当时的一些对话)。关于您担心向服务器发送大量请求的速度不应明显慢于单个大请求,这会使应用程序更快更敏捷。
有关此主题的进一步讨论,请查看 。
我正在构建一个聊天应用程序,并试图找到从 MongoDB 数据库中请求多个对话线程(私人和群组)的最有效方法。
我目前的想法是在客户端循环遍历用户的联系人,并为每个联系人向我的 REST API 发送一个 'getConversation' 请求。这发生在 用户配置文件数据首先在服务器上检索并发送到客户端后,以便尽快填充一些聊天界面,尽管我不确定如果考虑到我提出的额外请求的数量(一次很容易 25 - 50)这是最佳的。
我目前认为我可以使用 3 种方法:
1.) 向服务器发送用户数据请求 > 遍历服务器上的每个联系人(私人和群组) > 从数据库中获取每个对话 > 将整个包发送回客户端并分离数据进入相关的 (Vue / Vuex) 模块。请求总数:1 / 请求的数据:大
2.) * 我现在在做什么:发送用户数据的初始请求 > 在客户端接收它 > 遍历客户端的联系人 > 发送单独的 API 请求每个联系人 > 在对话返回客户端时填充对话。请求总数:> 20 / 请求的数据:小
3.) 发送对用户数据的初始请求 > 接收它 > 为 所有 对话发送单个请求。我预计这比选项 2 花费的时间更长,但我可能是错的。请求总数:2 / 请求的数据:中
我的 objective 是尽可能快速和高效地检索用户数据和对话,因此我欢迎您提出任何建议或您用来实现此类目的的技巧。
干杯:)
备注:
我正在使用 Vue/Vuex/MongoDB/Express/SocketIO。
TL;DR 我会选择第二个选项。
由于您希望您的应用尽可能快地加载并做出响应,因此您应该避免请求大块数据,您甚至可能最终不会在应用中使用这些数据。我会获取第一个(最新的)5-10 个对话,因为这些可能是用户想首先阅读的内容。然后,如果用户想要阅读更多您尚未从服务器获取的对话,您可以获取这些对话(可能还有当时的一些对话)。关于您担心向服务器发送大量请求的速度不应明显慢于单个大请求,这会使应用程序更快更敏捷。
有关此主题的进一步讨论,请查看