在GAE上运行Websocket

时间:2014-12-01 21:51:43

标签: javascript node.js google-app-engine websocket google-cloud-platform

我尝试使用websocket调整我的应用程序以在GAE上运行,但是阅读文档时,我找不到解决此问题的方法。

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

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

关注有关请求的图片;

enter image description here

4 个答案:

答案 0 :(得分:4)

要使用websockets,您必须将Google Managed VM与自定义运行时一起使用。

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

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

答案 1 :(得分:2)

后来经过了很多时间的学习和测试,Google的一位朋友向我展示了解决这个问题的方法! 谢谢Thiago Avancini!

嗯,解决方案是:

第一步是使用managed-vms。 (回购使用它。) 但目标是将管理从谷歌切换到用户。执行此操作时,下一步是为应用程序创建静态IP。在我的情况下,我使用端口3000来服务我的Websocket,随时改变。 在我的app.yaml上,我启用了这个端口:

network:
  forwarded_ports: ["3000"]

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

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

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

答案 2 :(得分:0)

无法有传入套接字连接:

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

  

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

答案 3 :(得分:0)

更新:2019年2月4日

Google Announced WebSockets support for the App Engine Flexible Environment

WebSockets可用于您的App Engine灵活环境应用程序,而无需进行特殊设置。查看我们的文档以了解更多信息:Python | Java | Nodejs

您必须添加到您的app.yaml

network:
  session_affinity: true