API Sockets per servizi in bundle legacy


Il traffico dai socket viene fatturato come larghezza di banda in uscita. App Engine supporta i socket in uscita utilizzando metodi della libreria PHP standard come fsockopen. Per le opzioni supportate, le chiamate a socket_get_option restituiranno un valore simulato e le chiamate a socket_set_option verranno ignorate automaticamente. Gli errori continueranno a essere segnalati per le opzioni non supportate. Le opzioni supportate sono:

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

Limitazioni e restrizioni

Il supporto dei socket in App Engine presenta le seguenti limitazioni:

  • Non puoi creare un socket di ascolto, ma solo socket in uscita.
  • FTP non è supportato.
  • Puoi utilizzare solo TCP o UDP; i protocolli arbitrari non sono consentiti.
  • Non puoi eseguire il binding a porte o indirizzi IP specifici.
  • La porta 25 (SMTP) è bloccata. Puoi comunque utilizzare SMTP autenticato sulla porta di invio 587.
  • Gli intervalli IP privati, di trasmissione, multicast e Google sono bloccati, ad eccezione di quelli elencati di seguito:

    • Google Public DNS: 8.8.8.8, 8.8.4.4, 2001:4860:4860::8888, porta 2001:4860:4860::8844
    • SMTPS di Gmail: porte 465 e 587smtp.gmail.com
    • Gmail POP3S: pop.gmail.com porta 995
    • Gmail IMAPS: imap.gmail.com porta 993
  • I descrittori di socket sono associati all'app App Engine che li ha creati e non sono trasferibili (non possono essere utilizzati da altre app).

  • I socket possono essere recuperati dopo 10 minuti di inattività; qualsiasi operazione relativa a un socket lo mantiene attivo per altri 10 minuti.

    Utilizzo dei socket con il server di sviluppo

    Puoi eseguire e testare il codice utilizzando i socket sul server di sviluppo, senza utilizzare parametri speciali della riga di comando.