Il traffico proveniente dai socket viene fatturato come larghezza di banda in uscita. App Engine supporta i socket in uscita utilizzando i metodi della libreria PHP standard, come
fsockopen
.
Per le opzioni supportate, le chiamate al numero
socket_get_option
restituiranno un valore fittizio e le chiamate al numero
socket_set_option
verranno ignorate automaticamente. Gli errori continueranno a essere visualizzati 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; puoi solo creare socket in uscita.
- FTP non è supportato.
- Puoi utilizzare solo TCP o UDP; non sono consentiti protocolli arbitrari.
- Non puoi eseguire l'associazione a porte o indirizzi IP specifici.
- La porta 25 (SMTP) è bloccata; puoi comunque utilizzare SMTP autenticato sulla porta di invio 587.
Gli intervalli di indirizzi IP privati, broadcast, 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
,2001:4860:4860::8844
porta 53 - SMTPS Gmail:
smtp.gmail.com
porte 465 e 587 - POP3S di Gmail:
pop.gmail.com
porta 995 - IMAPS Gmail:
imap.gmail.com
porta 993
- Google Public DNS:
I descrittori 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 dei socket mantiene il socket 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 della riga di comando speciali.