我正在嘗試使用websocket在GAE上運行我的應用程序,但是閱讀文檔時,我沒有找到針對此問題的漂亮解決方案。在GAE上運行Websocket
用一個非常簡單的應用程序那樣:https://github.com/marcosbergamo/gae-nodejs-websocket
這是我的示例演示試圖使用。但是當我嘗試連接到我的websocket時,我收到了這個錯誤;
請關注請求圖片;
我正在嘗試使用websocket在GAE上運行我的應用程序,但是閱讀文檔時,我沒有找到針對此問題的漂亮解決方案。在GAE上運行Websocket
用一個非常簡單的應用程序那樣:https://github.com/marcosbergamo/gae-nodejs-websocket
這是我的示例演示試圖使用。但是當我嘗試連接到我的websocket時,我收到了這個錯誤;
請關注請求圖片;
後來經過很多小時的學習和測試,Google的朋友向我展示了這個問題的一個解決方案! 感謝Thiago Avancini!
那麼,解決方案是:
第一步是使用managed-vms。 (回購使用它。) 但是,目標是將管理從Google切換到用戶。當你這樣做時,下一步就是爲你的應用程序創建一個靜態IP。在我的情況下,我使用端口3000來服務我的WebSocket,隨時可以改變。 在我的app.yaml啓用該端口太像這樣:
network:
forwarded_ports: ["3000"]
記住要啓用「網絡>>默認>>防火牆」在代理此端口。
如果您通過gcloud部署應用程序,則需要在應用程序上再次啓用用戶管理和靜態IP。
我會發送到GoogleCloudPlatform這個回購將是一個示例在AppEngine上使用websockets。
沒有內部的套接字連接:
https://cloud.google.com/appengine/docs/python/sockets/#limitations-and-restrictions
不能創建一個監聽套接字;您只能創建出站 套接字。
爲了使用WebSockets,你必須使用谷歌託管虛擬機的自定義運行。
https://cloud.google.com/appengine/docs/managed-vms/custom-runtimes
一旦運行,則需要通過直接IP或CNAME訪問該服務器。您無法瀏覽appspot.com網域。
我已經能夠使用您建議的方法連接到GAE上的wamp服務器,但我不需要將我的實例切換到用戶管理。 – CuriousGeorge 2016-01-17 07:03:22