【发布时间】:2014-04-30 14:09:34
【问题描述】:
我第一次尝试设计一个 Java Servlet。 这是我的最终目标行为。
- Servlet 收到请求。
- Servlet 向另一台服务器发出 HTTP 请求(我们称之为 MServer)。
- MServer 可以在接下来的 20-25 分钟内异步发送回复到我的 Servlets 请求。
- 我想在 Servlet 收到此数据后立即将此数据发送回用户(在步骤 1 中向 servlet 发出请求的用户)。
知道我该怎么做吗?
到目前为止,我刚刚制作了一个“Hello World”Java Servlet。与 MServer 通信的代码也已准备就绪。但我不知道如何实现这种异步行为。
任何帮助将不胜感激。
【问题讨论】:
-
可能你需要在 Servlet1 上创建一些消息队列并使用长轮询stackoverflow.com/questions/11077857/…
-
所以您假设用户将在页面等待加载时将选项卡保持打开 25 分钟?同意 user979349,轮询系统(换句话说:异步设计以匹配您的问题的异步性质)是要走的路。
-
@Gimby - 是的,我假设用户将保持连接打开大约 25 分钟。
-
@user979349 - 我不希望用户进行定期轮询,因为在智能手机中这可能会影响电源效率。我希望 servlet 从 MServer 获取任何数据后立即通知用户。
-
@Gimby - 还有一件事,我不想在 25 分钟结束时得到一个回复。我想要对同一个请求进行多个实时回复。类似的东西 - 用户请求 @ 0 分钟。 Servlet 在 2 分钟后发送一些数据。然后可能在 7 分钟后,servlet 再次发送一些数据,而用户没有任何操作。这每隔几分钟就会发生一次。 25 分钟后,客户端 - servlet 连接终止。而且我不想从客户端轮询。
标签: java servlets asynchronous httprequest httpresponse