gpt4 book ai didi

java - 通过客户端触发 Restful 服务器响应

转载 作者:行者123 更新时间:2023-11-29 21:58:44 25 4
gpt4 key购买 nike

这个问题可能听起来有点抽象,没有答案(但我的搜索没有偶然找到一个方便的答案)或者根本不具体,但我会尽力提供尽可能多的信息。

我正在构建一个移动应用程序,它将收集传感数据并将其发送到远程服务器。远程服务器将在 mySQL 数据库中收集所有这些数据并进行计算(不是 mysql 数据库,另一个进程/程序)。我想知道的是:

在数据库中进行一些更新后,是否可以使用“后台线程”之类的东西将响应从 RESTful 服务器发送到某个客户端(可能是最后一次更新的客户端)?或者这应该通过服务器-客户端响应通过套接字连接来完成?

一些评论:

我正在使用 javaEE、Spring MVC 以及 hibernate 和 tomcat(因为我以更异步的方式熟悉环境)。

我认为这将是一种方便的方法,因为 SQL 模式不太复杂,并且不需要安全和身份验证问题(它是一个原型(prototype))。

还有一个前端网页必须可视化这些数据,因此这样的后端系统看起来是快速完成工作的不错选择。

最后我看到了这个解决方案:

Is there a way to 'listen' for a database event and update a page in real time?

我的问题是,除了页面之外,我还想使用来自 RESTful 服务器的消息更新客户端。

如果上述所有这些都是不必要的,并且更简单的客户端-服务器应用程序将证明更好且更简单,请欢迎通知我。

提前谢谢您。

最佳答案

通常,您应该将数据上传到服务器上的资源(例如 POST/widgets),服务器应立即返回 201 Created 或(如果创建太频繁)速度慢,需要稍后发生)202 Accepted 状态。发生这种情况后有几种方法,每种方法都有其优点:

  • 轮询 - 服务器的响应包括一个位置字段,客户端可以继续轮询该位置字段,直到发生更改(例如每秒检查更新)。如果您有效地使用 HTTP 缓存并且平均检查次数相对较低,这是最简单的方法并且非常高效。
  • 推送通知 - 服务器在发生更改、生成报告等时发送推送通知。显然,这需要您存储客户端的详细信息及其通知要求。这可能是最干净的方法,也很容易扩展。对于 Android(也包括 iOS),您可以通过 Google Cloud Messaging 获得免费推送通知。
  • 在客户端和服务器之间建立持久连接,例如使用 Websocket 或低级 TCP 连接。这应该会产生最快的响应时间,但可能会消耗手机电池,更难以在服务器上扩展,并且编码更复杂。

关于java - 通过客户端触发 Restful 服务器响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32876844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com