在GAE上运行Websocket

我正在尝试使用websocket在GAE上运行我的应用程序,但是阅读Docs,我没有find解决这个问题的方法。

使用这样一个非常简单的应用程序: https : //github.com/marcosbergamo/gae-nodejs-websocket

这是我试用示例演示。 但是当我尝试连接到我的websocket时收到这个错误;

按照请求的图像;

在这里输入图像描述

为了使用websockets,您必须使用带有自定义运行时的Google托pipe虚拟机。

https://cloud.google.com/appengine/docs/managed-vms/custom-runtimes

一旦运行,您将需要通过ip或cname直接访问该服务器。 你不能通过appspot.com域名。

后来经过很多小时的学习和testing,Google的一位朋友向我展示了这个问题的一个解决scheme! 感谢Thiago Avancini!

那么,解决scheme是:

第一步是使用managed-vms。 (回购使用它。)但是目标是将pipe理从Google切换到用户。 当你这样做的时候,下一步就是为你的应用程序创build一个静态的IP地址。 在我的情况下,我使用端口3000来服务我的WebSocket,随时可以改变。 在我的app.yaml我启用这个端口也是这样的:

network: forwarded_ports: ["3000"] 

请记住在“networking>>默认>>防火墙”中的代理上启用此端口。

如果您通过gcloud部署应用程序,则需要在应用程序上再次启用用户pipe理和静态IP。

我将发送到GoogleCloudPlatform这个回购将是一个示例在AppEngine上使用websockets。

不能有传入套接字连接:

https://cloud.google.com/appengine/docs/python/sockets/#limitations-and-restrictions

您无法创build侦听套接字; 你只能创build出站套接字。