首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从服务器端通知客户的最佳实践?

从服务器端通知客户的最佳实践?
EN

Stack Overflow用户
提问于 2020-07-21 22:19:47
回答 2查看 1.6K关注 0票数 1

在我目前的情况下,前端客户端在15秒间隔内对后端端点(java)进行api调用,以查看资源是否存在。资源将通过一些业务逻辑创建。一旦资源存在,客户端将从api获取数据并对其进行处理。

但是,每15秒调用一次api似乎是一种代价高昂的性能,而且不具有可伸缩性。我想知道这方面的最佳实践--客户机等待资源存在以执行某些逻辑。

是否有从服务器向客户端发送/推送数据的方法/最佳实践,而不是单向的(服务器->客户端)。

提前谢谢你。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-21 23:22:27

为了正确地解决这个问题,您需要实现WebSocket。来自客户端的请求将是一个GET,服务器将批准它并使用200个状态代码进行确认。然后,当服务器处理您的请求时,它将通过websocket直接向您的web应用程序广播数据。

票数 4
EN

Stack Overflow用户

发布于 2020-07-21 22:53:49

是否有从服务器向客户端发送/推送数据的方法/最佳实践,而不是单向的(服务器->客户端)。

您刚才描述的内容称为观测器模式。它的整个想法是有一个观察员的名单附加到可观测的,并推送通知,每次状态的可观测的变化。

您可以在Java后端中实现此模式,方法是公开一个订阅端点,在该端点中指定要观察的内容,以及在发生状态更改时要调用的URI,或者推出服务器通知的其他机制。但是,如果您希望避免周期性的API查询,则可能需要解决另一个问题,即让“客户端”永久或临时地充当这些通知的服务器。

显然,您希望有一个“取消订阅”端点来释放资源。如果客户端意外地失去了连接,或者由于其他原因而没有参与进来,您可能需要考虑该做些什么(在这里,为订阅而花一些时间进行订阅听起来是个好主意)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63023944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档