Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 如何在GAE上运行WebSocket服务器?_Google App Engine_Websocket - Fatal编程技术网

Google app engine 如何在GAE上运行WebSocket服务器?

Google app engine 如何在GAE上运行WebSocket服务器?,google-app-engine,websocket,Google App Engine,Websocket,如何在Google应用程序引擎上运行WebSocket服务器?可能吗?可能吗?你不能 GAE将HTTP请求限制为30秒,WebSockets希望连接长时间打开 有可能吗?只有谷歌知道这一点。可能吗? 没有 您现在不能,因为GAE不允许通用入站套接字连接。每个请求也被限制在30秒之内,但这可以通过自动重新连接和会话跟踪轻松解决 可能吗? 可能吧 谷歌一直是WebSockets标准的最大(主要)推广者之一。如果他们在将来的某个时候不把对它的支持推向GAE,我会感到惊讶。请注意,WebSockets标

如何在Google应用程序引擎上运行WebSocket服务器?可能吗?可能吗?

你不能

GAE将HTTP请求限制为30秒,WebSockets希望连接长时间打开


有可能吗?只有谷歌知道这一点。

可能吗?

没有

您现在不能,因为GAE不允许通用入站套接字连接。每个请求也被限制在30秒之内,但这可以通过自动重新连接和会话跟踪轻松解决

可能吗?

可能吧

谷歌一直是WebSockets标准的最大(主要)推广者之一。如果他们在将来的某个时候不把对它的支持推向GAE,我会感到惊讶。请注意,WebSockets标准草案仍在不断变化中,因此谷歌可能会在该标准变得更加坚实之前犹豫是否添加支持

以下是GAE上WebSockets支持的错误:

请注意,一名谷歌员工表示它不在路线图上,但他们知道这会很有用。这和你从谷歌那里得到的关于尚未公布的功能的肯定回答差不多。我建议将您的声音添加到该bug中,以支持WebSocket。不会痛的

此外,根据应用程序,您可以考虑很快将具有GAE支持的信道API:


编辑(2015):频道API现在可用(已经有一段时间了)。

一些人已经在另一台服务器的帮助下让WebSocket与GAE合作。。。现在正式支持签出

编辑:支持频道API,不支持WebSocket。Channel API构建在WebSocket上,但它不允许您直接访问WebSocket。我想对于典型的网络应用来说,它已经足够好了。

还有一点: 这是实验性的,而且水平很低。

所有这些答案都过时了

通道API已经过测试。谷歌强烈建议您使用

同样值得注意的是,谷歌现在已经发布了


使用灵活的环境,您可以轻松地允许套接字连接,或使用Python 3。

从2019年1月9日起,它现在正式进入测试阶段-但仅适用于App Engine灵活版。例如,请参见。不过,据官方称,它可以与任何语言配合使用。

谷歌应用程序引擎最近在应用程序引擎灵活环境中推出了对WebSocket的支持。你可以看看他们的博客文章


2019年6月

现在,Flex的SLA支持对GAE的Websocket支持

Hi everyone, I'm happy to announce that Websockets support 
for Flex is now Generally Available! We've made no changes since Beta 
but Websockets traffic is now subject to our SLA. 

We've also published documentation for this feature for all App Engine Flex languages.

请参见

希望有所帮助,但现在似乎得到了支持。2021
[https://cloud.google.com/appengine/docs/flexible/java/using-websockets-and-session-affinity][1]

30秒的请求限制并不是真正的主要障碍。很容易创建一个层,在旧请求过期之前为同一会话启动新的WebSockets连接,这样在通信中就不会有任何间隙。只允许入站HTTP请求才是真正的杀手。WebSocket是双向的(就像HTTP一样),但它们只在入站启动(从客户端到服务器)。而且GAE也在对外发布:从2010年到2013年,很多事情都发生了变化。请看Channel@JosepValls,这个解决方案是建立在WebSocket标准之上的,还是谷歌特有的技术?我无法在客户端创建Channel。请回答“套接字仅适用于付费应用程序。您无法创建侦听套接字;您只能创建出站套接字。”@demented hedgehog,您知道关于仅创建出站套接字的部分将允许我在前端向用户发送实时更新。对于后代,频道API仅为前端->后端。这对服务器->服务器连接没有好处。它也正在日落,从2017年10月31日起将停止工作:我认为flexible environment基本上运行您自己的计算引擎,所以它很可能会工作。。。也许我会选择。。。但是,您需要一台24/7运行的机器(对于最小的虚拟机,大约50英镑/年),我可以确认,灵活环境中的套接字可以正常工作。使用socket.io进行测试,无需特殊配置。