Comment puis-je exécuter un serveur WebSocket sur Google App Engine? C'est possible? Sera-t-il possible?
Est-ce possible?
Non.
Vous ne pouvez pas maintenant parce que GAE n'autorise pas les connexions de socket entrantes génériques. Chaque demande est également limitée à 30 secondes, mais cela pourrait facilement être réglé avec une reconnexion automatique et un suivi de session.
Sera-ce possible?
Probablement.
Google a été l’un des plus grands promoteurs (principaux) du standard WebSockets. Je serais surpris qu'ils n'insistent pas dans GAE à l'avenir. Notez que le projet de norme WebSockets est toujours en évolution, de sorte que Google pourrait hésiter à prendre en charge le support avant que la norme ne soit plus solide.
Voici le bogue de l’assistance WebSockets sur GAE: http://code.google.com/p/googleappengine/issues/detail?id=2535
Notez qu'un employé de Google indique que ce n'est pas sur la feuille de route, mais qu'il sait que ce serait utile. C’est une réponse aussi positive que celle de Google sur les fonctionnalités qui n’ont pas été annoncées. Je recommande d'ajouter votre voix à ce bogue en faveur du support WebSocket. Ça ne peut pas faire mal.
En outre, en fonction de votre application, vous pouvez envisager l’API de la chaîne, qui sera bientôt prise en charge par GAE:
EDIT (2015) : l'API Channels est disponible maintenant (ça fait un moment).
_ {Toutes ces réponses sont obsolètes.
L'API de la chaîne a été obsolète . Google fortement vous recommande d'utiliser Firebase .
Il convient également de noter que Google a publié le environnement flexible .
Avec l'environnement flexible, vous pouvez facilement autoriser les connexions de socket ou utiliser Python 3.
C'est officiellement supporté maintenant.
Voir https://cloud.google.com/appengine/docs/python/channel/
EDIT: l'API de canal est prise en charge, pas WebSockets. L'API de la chaîne est construite sur WebSockets, mais elle ne vous donne pas d'accès direct à WebSocket. Je suppose que cela suffit pour les applications Web typiques.
À compter du 9 janvier 2019, il est maintenant officiellement en version bêta - mais uniquement pour App Engine flexible . Par exemple, voir la documentation Python . Selon le traqueur issue , cela fonctionnera avec n’importe quelle langue.
Quelques personnes ont eu des WebSockets travaillant avec GAE à l'aide d'un autre serveur ... checkout http://code.google.com/p/typhoonae/wiki/WebSockets
Tu ne peux pas.
GAE limite les requêtes HTTP à 30 secondes. WebSockets attend une connexion ouverte pendant longtemps.
Sera-t-il possible? Seul Google le sait.
Google App Engine a récemment lancé la prise en charge de Websockets sur App Engine Flexible Environment. Vous pouvez jeter un oeil à leur blog.
Il y a aussi ceci: https://cloud.google.com/appengine/docs/go/sockets/ C'est expérimental et très bas niveau cependant.