J'aimerais utiliser Google App Engine pour initier un trafic http vers des appareils qui seront derrière des pare-feu/routeurs/NAT. Ces appareils recevront des commandes de GAE. Je pourrais faire en sorte que les appareils interrogent GAE à la recherche de nouveaux messages, mais cela utilise beaucoup de trafic. Sinon, je pourrais essayer de maintenir une connexion ouverte en permanence, mais cela est très coûteux et mauvais.
Les appareils n'auront pas d'adresse IP statique. Cependant, ils communiqueront périodiquement avec Google App Engine et le périphérique pourra alors écouter le port qu'il vient d'ouvrir pour toute communication entrante. Si je comprends bien Perforation TCP Puisque les appareils ont déjà envoyé du trafic à GAE, ils auront un port assigné qui correspond au port que l'appareil écoute et, par conséquent, GAE a un trou disponible dans le pare-feu.
Cependant Pour que GAE puisse envoyer du trafic vers le dispositif, il doit connaître le port attribué au dispositif sur son IP public. C'est là que réside le problème, car GAE ne met pas à disposition le port source/à distance pour le trafic entrant. Sans connaître le port que le périphérique vient d'utiliser, je ne peux pas envoyer au périphérique autre chose que des messages de réponse http. Je ne peux pas réellement lancer des messages http/tcp vers ce périphérique.
Alors, quelqu'un connaît-il un moyen d'obtenir le port source/éloigné entrant pour GAE ou connaît-il un autre moyen d'initier le trafic vers des dispositifs derrière des pare-feu ?
TL;DR : Comment diable obtenir le port distant pour les messages http envoyés aux applications sur GAE ?