API Sockets para servicios agrupados antiguos


El tráfico de los sockets se factura como ancho de banda de salida. App Engine admite sockets salientes mediante métodos de la biblioteca estándar de PHP, como fsockopen. En el caso de las opciones admitidas, las llamadas a socket_get_option devolverán un valor simulado y las llamadas a socket_set_option se ignorarán de forma silenciosa. Seguirán apareciendo errores en las opciones no admitidas. Las opciones admitidas son las siguientes:

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

Limitaciones y restricciones

La compatibilidad con sockets en App Engine tiene las siguientes limitaciones:

  • No puedes crear un socket de escucha, solo puedes crear sockets salientes.
  • No se admite FTP.
  • Solo puedes usar TCP o UDP. No se permiten protocolos arbitrarios.
  • No puedes enlazar con direcciones IP ni puertos específicos.
  • El puerto 25 (SMTP) está bloqueado, pero puedes seguir usando SMTP autenticado en el puerto de envío 587.
  • Se bloquean los intervalos de direcciones IP privadas, de difusión, de multidifusión y de Google, excepto los que se indican a continuación:

    • Google Public DNS: 8.8.8.8, 8.8.4.4, 2001:4860:4860::8888, 2001:4860:4860::8844 puerto 53
    • SMTPS de Gmail: smtp.gmail.com puertos 465 y 587
    • POP3S de Gmail: pop.gmail.com puerto 995
    • IMAPS de Gmail: imap.gmail.com puerto 993
  • Los descriptores de sockets están asociados a la aplicación de App Engine que los creó y no se pueden transferir (no los pueden usar otras aplicaciones).

  • Los sockets se pueden reclamar después de 10 minutos de inactividad. Cualquier operación de socket mantiene el socket activo durante otros 10 minutos.

    Usar sockets con el servidor de desarrollo

    Puedes ejecutar y probar código usando sockets en el servidor de desarrollo sin usar ningún parámetro especial de la línea de comandos.