带有 java 模块的 GAE 通道

Posted

技术标签:

【中文标题】带有 java 模块的 GAE 通道【英文标题】:GAE channels with java modules 【发布时间】:2014-10-04 03:24:14 【问题描述】:

得到了一个由“default”和“abc”两个模块组成的 java 应用程序。 “默认”包含我通过 https 提供的 Web 界面,“abc”是一些仅通过 http 提供的后端逻辑。现在,我的目标是让 Web 客户端(“默认”)打开一个频道并监听从我的模块“abc”发送的消息。

因此,我已按照文档进行操作,并使其在开发服务器上本地工作,但在生产中部署时,Web 客户端不会收到任何消息。

基本上这很简单,网络客户端创建一个频道并从“https://my-app.appspot.com”接收令牌,然后我的另一个模块(“http://abc.my-app.appspot.com”)开始在同一个频道上发布消息,但正如我提到的那样只能在本地工作,不能在生产环境中工作。

我是否需要使用相同的协议架构从同一个子域创建频道并将消息发布到频道?对我来说这似乎很奇怪,因为这两个模块实际上属于同一个应用程序。

日志中没有错误或消息,我使用的是最新的 (1.9.8) gae sdk。

任何帮助表示赞赏。

【问题讨论】:

【参考方案1】:

似乎 Channels API 仅适用于默认模块:https://code.google.com/p/googleappengine/issues/detail?id=10293

【讨论】:

谢谢,对于遇到同样问题的其他人来说,这是值得的,我最终使用任务队列将任何消息从“abc”模块转发到“默认”模块。然而,这也不是微不足道的 (code.google.com/p/googleappengine/issues/detail?id=10457)。它现在正在运行,但是解决方案并不完美,因为使用 TaskQueue 也意味着额外的配额成本,但我想这是 Google 的商业模式。

以上是关于带有 java 模块的 GAE 通道的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Eclipse 运行时为 GAE 模块使用共享库?

GAE 通道接口

在 GAE 项目/应用程序级别与服务/模块级别实施 CI/CD 环境的优势?

Appengine Java & GWT - 无法重新创建和打开通道

在GAE项目/应用程序级别与服务/模块级别实施CI / CD环境的优势?

GAE Java API 频道