Come posso eseguire un server WebSocket su Google App Engine? È possibile? Sarà possibile?Come posso eseguire un server WebSocket su GAE?
risposta
È possibile?
No.
Non è possibile in questo momento perché GAE non consente generici connessioni socket in entrata. Ogni richiesta è inoltre limitata a 30 secondi, ma ciò potrebbe facilmente essere risolto con la riconnessione automatica e il monitoraggio della sessione.
Sarà possibile?
Probabilmente.
Google è stato uno dei principali (principali) promotori dello standard WebSockets. Sarei sorpreso se non spingessero il supporto per farlo in GAE ad un certo punto in futuro. Si noti che lo standard di bozza di WebSockets è ancora in fase di flusso, quindi Google potrebbe essere riluttante ad aggiungere supporto prima che lo standard sia più solido.
Ecco il bug per WebSockets supporto su GAE: http://code.google.com/p/googleappengine/issues/detail?id=2535
Si noti che un dipendente di Google indica che non è sulla tabella di marcia, ma che sanno che sarebbe utile. È una risposta tanto positiva quanto ne ricavate da Google su funzionalità che non sono state annunciate. Raccomando di aggiungere la tua voce a quel bug in favore del supporto WebSocket. Non può far male.
Inoltre, a seconda dell'applicazione in uso, si può considerare l'API del canale che sarà probabilmente il supporto GAE presto:
- 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): il L'API di Canali è ora disponibile (è stata per un po ').
Vedere il canale https://developers.google.com/appengine/docs/python/channel/?csw=1 –
I Non sono in grado di creare canali sul lato client. Puoi rispondere a questo http://stackoverflow.com/questions/34332222/unable-to-creare-new-channel-in-javascript-of-channel-api –
EDIT 2016: i canali sono ora obsoleti ... –
Non è possibile.
GAE limita le richieste HTTP a 30 secondi, WebSockets prevede di avere una connessione aperta per un lungo periodo.
Sarà possibile? Solo Google lo sa.
Il limite di 30 secondi della richiesta non è davvero un blocco importante. Sarebbe facile creare un layer che avvii una nuova connessione WebSockets per la stessa sessione prima che la vecchia richiesta scada, in modo da non lasciare spazi vuoti nella comunicazione. Solo il permettere le richieste HTTP in entrata è il vero killer. – kanaka
Websocket sono bidirezionali (come HTTP) ma vengono avviati solo in ingresso (da client a server). http://en.wikipedia.org/wiki/WebSockets –
E GAE è anche in uscita: utilizza l'URL Fetch –
un paio di persone hanno ottenuto WebSockets lavorare con GAE, con l'aiuto di un altro server ... checkout http://code.google.com/p/typhoonae/wiki/WebSockets
E 'ufficialmente supportato ora.
Vedi https://cloud.google.com/appengine/docs/python/channel/
EDIT: l'API canale è supportato, non WebSockets. L'API del canale è costruita su WebSockets, ma non ti dà accesso diretto al WebSocket. Suppongo che sia abbastanza buono per le tipiche applicazioni Web.
Per posterità, l'API Canali è solo frontend-> backend. Non va bene per le connessioni server-> server. –
È anche in fase di tramonto e smetterà di funzionare a partire dal 2017-10-31: https://cloud.google.com/appengine/docs/deprecations/channel – sengi
https://i.ytimg.com/vi/xZ_JiU7L9Zk/hqdefault .jpg –
C'è anche questo: https://cloud.google.com/appengine/docs/go/sockets/ Si tratta di un livello sperimentale e molto basso.
"Gli zoccoli sono disponibili solo per le app pagate Non è possibile creare un socket di ascolto, è possibile solo creare socket in uscita." –
Tutte queste risposte non sono aggiornate.
L'API canale è stata deprecated. Google fortemente consiglia di utilizzare Firebase.
Vale anche la pena notare che Google ha ora rilasciato lo flexible environment.
Con l'ambiente flessibile, è possibile consentire facilmente connessioni socket o utilizzare Python 3.
- 1. Come posso eseguire un'applicazione GAE su un server privato?
- 2. Esegui Websocket su GAE
- 3. Posso usare Spring su GAE?
- 4. Come posso eseguire più database Neo4j su un singolo server?
- 5. GAE può agire come un server XMPP?
- 6. Come puntare un WebSocket al server corrente
- 7. Come creare un server WebSocket utilizzando SuperWebSocket
- 8. Come eseguire Dart su un server?
- 9. Server Websocket con PHP
- 10. Posso creare un server websocket utilizzando JavaScript (lato client)?
- 11. WebSocket su SSL: Cloudflare
- 12. Posso eseguire un server HTTP su una piattaforma mobile?
- 13. WebSocket su Heroku ERR_CONNECTION_REFUSED
- 14. Come implementare server-push su websocket in suave?
- 15. Server live WebSocket
- 16. Come funziona xsockets.net (.NET WebSocket Server) su Windows 2008?
- 17. Server Websocket PHP hybi10
- 18. Websocket tra 2 server?
- 19. come posso eseguire daemon server rails?
- 20. Fleck in esecuzione (o qualsiasi) server Websocket su Windows Azure
- 21. Come eseguire SWF senza browser (su un server Linux)?
- 22. Come eseguire il meteor server su un indirizzo IP diverso?
- 23. Sul dispositivo server WebSocket iOS
- 24. facile da programmare WebSocket Server
- 25. GAE Maven come distribuire
- 26. Come connettere due server node.js con websocket?
- 27. Come si crea un server WebSocket incorporato Jetty 9?
- 28. Come impostare i certificati intermedi su GAE?
- 29. Utilizzando WebSocket su Windows 7
- 30. Raccomandazione su come documentare l'API Websocket
Dal 2010 al 2013 molte cose sono cambiate. Vedi Canale https://developers.google.com/appengine/docs/python/channel/?csw=1 –
@JosepValls, la soluzione è basata sullo standard WebSocket o è una tecnologia specifica di Google? – Pacerier