如何在Google App Engine上運行WebSocket服務器?可能嗎?會有可能嗎?如何在GAE之上運行WebSocket服務器?
回答
可能嗎?
號你現在不能因爲GAE不允許通用入站套接字連接。每個請求也被限制爲30秒,但這可以通過自動重新連接和會話跟蹤輕鬆解決。
有可能嗎?
也許。
谷歌一直是WebSockets標準中最大的(主要)推動者之一。如果他們不在未來某個時候將其支持推向GAE,我會感到驚訝。請注意,WebSockets草案標準仍然不變,所以Google可能會猶豫在標準更加穩固之前添加支持。
這裏是錯誤的的WebSockets在GAE支持:http://code.google.com/p/googleappengine/issues/detail?id=2535
注意,一個谷歌員工表示這不是在路線圖上,但他們知道這將是有益的。這就像你從谷歌獲得有關尚未公佈的功能的正面答案。我建議您將該語音添加到該錯誤中,以支持WebSocket支持。它不會傷害。
另外,根據您的應用程序,你可以考慮在通道API,它可能將不得不GAE支持推出:
- http://googleappengine.blogspot.com/2010/05/app-engine-at-google-io-2010.html
- http://bitshaq.com/2010/09/01/sneak-peak-gae-channel-api/
EDIT(2015):在渠道API現在可用(已經有一段時間了)。
請參閱頻道https://developers.google.com/appengine/docs/python/channel/?csw=1 – 2013-10-22 23:35:02
我我無法在客戶端創建頻道。您可以請回答這個 http://stackoverflow.com/questions/34332222/unable-to-create-new-channel-in-javascript-of-channel-api – 2015-12-17 11:56:21
編輯2016年:頻道現在已被棄用... – 2016-12-06 10:09:13
你不能。
GAE將HTTP請求限制爲30秒,WebSockets期望長時間打開連接。
有可能嗎?只有Google知道這一點。
30秒的請求限制並不是真正的主要阻止者。在舊請求過期之前創建一個爲同一會話啓動一個新的WebSocket連接的層將很容易,這樣您就不會在通信中留下任何空白。只允許入站HTTP請求是真正的殺手。 – kanaka 2010-11-06 21:21:43
Websockets是兩種方式(與HTTP一樣),但它們僅從入站(從客戶端到服務器)開始。 http://en.wikipedia.org/wiki/WebSockets – 2010-11-06 21:31:31
而且GAE也是outbound:使用URL Fetch – 2010-11-06 21:32:23
一對夫婦的人已經得到的WebSockets與GAE正在與另一臺服務器的幫助......結賬http://code.google.com/p/typhoonae/wiki/WebSockets
它現在正式支持。
見https://cloud.google.com/appengine/docs/python/channel/
編輯:通道API支持,而不是WebSockets的。 Channel API建立在WebSocket上,但它不能直接訪問WebSocket。我認爲這對典型的Web應用程序來說已經足夠了。
For後臺,Channels API只是前端 - >後端。這對服務器 - >服務器連接沒有好處。 – 2016-11-01 20:53:47
這也是日落,並將於2017-10-31停止工作:https://cloud.google.com/appengine/docs/deprecations/channel – sengi 2017-07-18 11:53:23
https://i.ytimg.com/vi/xZ_JiU7L9Zk/hqdefault .jpg – 2017-10-13 07:25:35
還有這樣的:https://cloud.google.com/appengine/docs/go/sockets/ 雖然它是實驗性和非常低的水平。
「套接字僅適用於付費應用程序 您不能創建偵聽套接字;您只能創建出站套接字。」 – 2016-09-30 03:09:32
所有這些答案都是過時的。
通道API已被deprecated。谷歌強烈建議您使用。
還值得注意的是,谷歌現在已經發布了flexible environment。
在靈活的環境中,您可以輕鬆地允許套接字連接或使用Python 3.
- 1. 在GAE上運行Websocket
- 2. 在amazon EC2上運行websocket服務器
- 3. 如何運行websocket服務器?
- 4. 如何在Apache httpd服務器上運行Pyramid和Websocket?
- 5. 如何在專用服務器上運行GAE應用程序?
- 6. 在Windows Azure上運行Fleck(或任何)Websocket服務器
- 7. 以跺腳運行websocket服務器
- 8. 如何讓websocket客戶端等待服務器正在運行?
- 9. 運行您自己的GAE服務器
- 10. 如何在服務器上運行JavaScript
- 11. 如何在服務器上運行Dart?
- 12. 如何運行在服務器上
- 13. .Net 4.5在Windows 7上運行的WebSocket服務器?
- 14. Tornado:在端口80上運行websocket和flash策略服務器
- 15. MongoInternalException:在GAE本地服務器上運行時DBPort.findOne失敗
- 16. 如何在生產服務器上運行Yard服務器?
- 17. 如何在同一端口上運行套接字和websocket服務器?
- 18. python.problems上的websocket服務器
- 19. 如何將sinatra作爲websocket服務器運行?
- 20. 如何在服務器上自主運行程序,如何在服務器上無限運行java程序?
- 21. 如何在個人運行服務器上運行Django項目
- 22. 如何讓Sonar Runner在源服務器上運行時運行?
- 23. 如何從一個NodeJS應用程序運行HTTP服務器,UDP服務器和WebSocket服務器?
- 24. 在我運行服務器之後recv()
- 25. 如何讓websocket服務器在路由器上?
- 26. 在設備上的iOS websocket服務器
- 27. 在子域上的Websocket服務器只
- 28. 如何調用服務器上的.exe文件以在服務器上運行?
- 29. 在Linux CI服務器上的GAE
- 30. 在GAE開發服務器上嘲笑?
從2010年到2013年,很多事情都發生了變化。請參閱頻道https://developers.google.com/appengine/docs/python/channel/?csw=1 – 2013-10-22 23:35:48
@JosepValls,該解決方案是基於WebSocket標準構建的,還是Google特有的技術? – Pacerier 2014-05-13 04:59:24