API Sockets pour les anciens services groupés


Le trafic provenant des sockets est facturé en tant que bande passante sortante. App Engine est compatible avec les sockets sortants, à condition d'utiliser les méthodes de la bibliothèque PHP standard, par exemple fsockopen. Pour les options compatibles, les appels à socket_get_option affichent une valeur fictive, et les appels à socket_set_option sont ignorés sans notification. Les erreurs continuent d'être générées pour les options non compatibles. Les options compatibles sont les suivantes :

  • SO_KEEPALIVE
  • SO_DEBUG
  • TCP_NODELAY
  • SO_LINGER
  • SO_OOBINLINE
  • SO_SNDBUF
  • SO_RCVBUF
  • SO_REUSEADDR

Limites et restrictions

Dans App Engine, la compatibilité avec les sockets présente les limitations suivantes :

  • Vous ne pouvez pas créer de socket d'écoute et vous ne pouvez créer que des sockets sortants.
  • Le protocole FTP n'est pas compatible.
  • Seuls les protocoles TCP ou UDP peuvent être utilisés ; les protocoles arbitraires ne sont pas autorisés.
  • Vous ne pouvez pas établir de liaisons à des adresses IP ou des ports spécifiques.
  • Le port 25 (SMTP) est bloqué. Vous pouvez utiliser le protocole SMTP authentifié sur le port de soumission 587.
  • Les plages IP privées, de diffusion, de multidiffusion et Google, à l'exception de celles énumérées ci-dessous, sont bloquées :

    • DNS public de Google : 8.8.8.8, 8.8.4.4, 2001:4860:4860::8888, 2001:4860:4860::8844 (port 53)
    • Gmail SMTPS : smtp.gmail.com (ports 465 et 587)
    • Gmail POP3S : pop.gmail.com (port 995)
    • Gmail IMAPS : imap.gmail.com (port 993)
  • Les descripteurs de socket sont associés à l'application App Engine qui les a créés et ne sont pas transférables (ils ne peuvent pas être utilisés par d'autres applications).

  • Les sockets peuvent être récupérés après 10 minutes d'inactivité. Toute opération de socket maintient le socket en vie pendant 10 minutes supplémentaires.

    Utiliser des sockets avec le serveur de développement

    Vous pouvez exécuter et tester du code à l'aide de sockets sur le serveur de développement, sans utiliser de paramètres de ligne de commande spéciaux.