我正在构建一个移动应用程序,在这个应用程序中,用户界面上的一个下拉手势会启动现有数据/帖子的更新(如果有新的帖子,也会检索新的帖子,但这不是重点)。服务器是无状态的,这意味着没有会话。
如果数据库中的帖子已经更新,我如何让前端知道哪些帖子需要更新?我能想到的唯一方法是将所有检索到的帖子的id列表发送到服务器,并让它检查是否有任何帖子在获取后被修改过。
不过,这看起来效率很低,因为在某些极端情况下,用户可能会堆积成百上千的帖子,而且很可能只有很少或根本不需要更新。发出数百个db请求可能是一个巨大的开销。
1条答案
按热度按时间ep6jt1vc1#
至少有两种方法
长轮询
客户端请求服务器提供新信息。
服务器将保持连接打开,直到有新数据要发送。
一旦服务器获得数据,它就会将数据发送到客户机并关闭连接。
然后,客户机发送一个新的信息请求。
这是一个持续的过程。
网袋
创建一个websocket连接,保持它打开。
服务器会在任何更新到来时推送它们。
两种情况都有问题
可能需要大量的时间来实现生产就绪。
它们都要求服务器知道数据库中的任何更改。这也可能很棘手