Bab*_*Dan 4 java api rest spring
我正在为 Spring 中的 Adndroid 应用程序开发 Java API。现在我的 API 是 100% REST 和无状态的。为了让客户端接收数据,它必须先发送一个请求。
但是,我需要的是服务器在准备好执行任务时将数据发送到客户端/而不是客户端发送到服务器 fisrt/。
我认为必须在两方之间建立某种会话。
我的问题是:当服务器准备好执行任务时,如何实现服务器向客户端发送数据的功能?/不知道任务需要多长时间。/
我应该为此开发什么样的 API?
一个愚蠢的解决方法是每 n 秒向服务器发送一个请求,但我正在寻找一种更智能的方法。
有多种选择。您可以选择最适合您的。
Http Long Polling - 在这种情况下,服务器会保留请求,直到它准备好执行其任务(在您的情况下)。在这里,您不必每隔几秒钟就发出多个请求(即 Http 轮询)。
服务器发送事件 - 在这种情况下,服务器将更新发送到客户端而无需长时间轮询。它是 HTML 5 的标准化部分 - https://www.w3.org/TR/eventsource/
Websockets - 好吧,websockets 在双工模式下工作,在这种模式下建立了持久的 TCP 连接。一旦建立 TCP 连接,服务器和客户端都会来回发送数据。大多数现代浏览器都支持。您可以检查 Android Websocket 库,如高速公路和 Java websocket。
SockJs - 我建议使用这个选项而不是普通的 WebSocket。http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#websocket-fallback-sockjs-enable
| 归档时间: |
|
| 查看次数: |
3080 次 |
| 最近记录: |