GAE 上的服务器发送事件:这可能吗?

Server Send Events on GAE: ¿is it possible?

我想启用某种涉及 PHP(后端)和 JS(前端)的实时机制。 SSE 似乎是一种不错的方法,因为我不需要双向连接。

我面临的问题是 Google App Engine 正在缓冲 PHP 响应,破坏了 flush() 的使用,因此阻止我构建 SSE 服务器。

有谁知道如何让 GAE 不缓冲响应?使用流媒体?套接字?被证明可以在 GAE 下工作的替代方案?我尝试过使用通道,但这带来了巨大的挑战,因为我的应用程序完全基于 PHP 构建,我唯一想要的是添加一些实时通知功能。在同一个项目中共存两种语言也有其自身的复杂性。

任何回答、建议、输入或反馈将不胜感激。

编辑:

正如@Shrike 在评论中指出的那样,此答案中的信息已过时。使用新的运行时(python3、Java 11、PHP7),自动缩放时请求超时为 10 分钟,基本或手动缩放时请求超时为 24 小时(来源:app engine docs ).

即便如此,也无法使用服务器发送的事件

App Engine does not support streaming responses where data is sent in incremental chunks to the client while a request is being processed. All data from your code is collected as described above and sent as a single HTTP response.

(来源:official google appengine docs

旧版答案(对于 Java 8、PHP 5 和 Python 2):

Server Sent Events 和 Web Sockets 等技术在设计上无法在 App Engine 上运行。 App Engine 中的所有前端请求的运行时间限制为 60 秒,任务限制为 10 分钟。因此,即使您将与客户端的连接保持打开状态(如服务器发送事件),它也会在 60 秒后关闭。如果你可以打开一个任务的网络套接字连接(你不能),它会在十分钟后关闭。

备选方案是: