Sockets API für gebündelte Legacy-Dienste


Traffic von Sockets wird als ausgehende Bandbreite abgerechnet. App Engine unterstützt ausgehende Sockets mit Methoden aus der Standard-PHP-Bibliothek, z. B. fsockopen. Bei unterstützten Optionen geben Aufrufe von socket_get_option einen Simulationswert zurück und Aufrufe von socket_set_option werden ohne Rückmeldung ignoriert. Bei nicht unterstützten Optionen werden weiterhin Fehlermeldungen zurückgegeben. Die folgenden Optionen werden unterstützt:

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

Limits und Einschränkungen

Die Socket-Unterstützung in App Engine unterliegt den folgenden Einschränkungen:

  • Sie können keinen Socket erstellen, der auf eingehende Verbindungen wartet; nur ausgehende Sockets können erstellt werden.
  • FTP wird nicht unterstützt.
  • Sie können nur TCP oder UDP verwenden. Beliebige Protokolle sind nicht erlaubt.
  • Sie können Sockets nicht an bestimmte IP-Adressen oder Ports binden.
  • Port 25 (SMTP) ist blockiert; Sie können weiterhin authentifiziertes SMTP auf dem Übermittlungsport 587 verwenden.
  • Private, Broadcast-, Multicast- und Google-IP-Bereiche (mit Ausnahme der unten aufgelisteten) sind blockiert:

    • Google Public DNS: 8.8.8.8, 8.8.4.4, 2001:4860:4860::8888, 2001:4860:4860::8844 Port 53
    • Gmail SMTPS: smtp.gmail.com Port 465 und 587
    • Gmail POP3S: pop.gmail.com Port 995
    • Gmail IMAPS: imap.gmail.com Port 993
  • Socket-Deskriptoren sind der App Engine-Anwendung zugeordnet, mit der sie erstellt wurden, und nicht übertragbar. Sie können also nicht von anderen Anwendungen genutzt werden.

  • Sockets können nach zehn Minuten Inaktivität zurückgewonnen werden. Jeder Socket-Vorgang hält den Socket für weitere zehn Minuten aktiv.

    Sockets mit dem Entwicklungsserver verwenden

    Sie können Code mithilfe von Sockets auf dem Entwicklungsserver ausführen und testen, ohne spezielle Befehlszeilenparameter zu verwenden.