我尝试使用websocket调整我的应用程序以在GAE上运行,但是阅读文档时,我找不到解决此问题的方法。
使用一个非常简单的应用程序:https://github.com/marcosbergamo/gae-nodejs-websocket
这是我尝试使用的示例演示。但是当我尝试连接到我的websocket时,我收到了这个错误;
关注有关请求的图片;
答案 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日
WebSockets可用于您的App Engine灵活环境应用程序,而无需进行特殊设置。查看我们的文档以了解更多信息:Python | Java | Nodejs。
您必须添加到您的app.yaml
network:
session_affinity: true