【发布时间】:2017-02-02 10:23:46
【问题描述】:
我正在为 Spring 中的 Adndroid 应用程序开发 Java API。现在我的 API 是 100% REST 和无状态的。客户端要接收数据,必须先发送请求。
但是,我需要的是服务器将数据发送到客户端/而不是客户端首先发送到服务器/只要它准备好执行任务。
我认为必须在两方之间创建某种会话。
我的问题是:当服务器准备好执行任务时,如何实现服务器向客户端发送数据的功能? /不知道任务需要多长时间。/
我应该为此开发什么样的 API?
一个愚蠢的解决方法是每 n 秒向服务器发送一个请求,但我正在寻找一种更智能的方法。
【问题讨论】:
-
切换到网络套接字通信是否可行?这样你就可以异步通信了
-
谢谢,我马上查一下
-
另一种选择是使用 JMS 主题,并让服务器在数据准备好时在主题上放置一条消息,当客户端收到有关该主题的消息时,客户端将监听该主题,客户端将调用服务器的服务来获取数据。参考:docs.oracle.com/javaee/6/tutorial/doc/bncdq.html
-
@mangotang 谢谢!这可能有效