java - 将数据从 appengine servlet 异步发送到客户端的简单方法

标签 java google-app-engine http servlets asynchronous

我创建了一个 Web 应用程序,它提供网站服务。

我计划创建一个 WebServlet API,以允许其他软件(Web 或桌面)轻松集成我的服务,调用简单的操作如下:

http://www.server_name.com/APIServlet?ACTION=CreateUser&DATA={"username":"username@gmail.com","password":"some_password"}

问题在于,API 还应该提供一种在发生给定更改后立即将数据异步发送到 API 客户端的方法。

我知道 Channel API 是实现此目的的更好方法,但对于 API 用户来说实现起来相当复杂,特别是在非 javascript 应用程序中。

在我看来,需要 API 用户更少精力的更好解决方案是“长轮询”,提供一个 API 操作来保存响应,直到服务器有东西要返回或发生“超时”。例如:

    http://www.server_name.com/APIServlet?ACTION=WaitMessage&DATA={"sessionId":"12kdj45jsdj"}

但据我所知,这个解决方案是不可能的,因为 appengine 将请求响应限制为 30 秒。

如何以简单的方式使用 HTTP 请求实现异步服务器 -> 客户端通信。

最佳答案

GAE 上唯一的异步服务器到客户端通信可通过 Channel API 获得。 。不幸的是它只是 JavaScript,所以你只能在浏览器中使用它。

关于java - 将数据从 appengine servlet 异步发送到客户端的简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14604722/

相关文章:

java - File() 构造函数中是否需要 .txt 扩展名?

javascript - 无法在 Angular/Express 中发布

web-services - 什么是 REST API 错误处理最佳实践?

google-app-engine - 如何在Google云中部署现有的Spring MVC + JPA + MYSql + Maven应用程序

c# - HTTP 连接问题

java - 对象类中的静态列表

java - 尝试在空指针对象上调用异常

java - 在java记事本中查找单词jtextfield

java - 如何清理谷歌应用引擎中的字符串?

ruby - Ubuntu 10.04 上的 ruby​​gems 更新后 dev_appserver.rb 无法启动