Il traffico proveniente dalle socket viene fatturato come larghezza di banda in uscita. App Engine supporta le socket in uscita che utilizzano 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 silenziosamente. Continueranno a essere generati errori 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 delle socket in App Engine presenta le seguenti limitazioni:
- Non puoi creare una socket di ascolto; puoi creare solo socket in uscita.
- FTP non è supportato.
- Puoi utilizzare solo TCP o UDP; i protocolli arbitrari non sono consentiti.
- Non puoi eseguire il binding ad indirizzi IP o porte specifici.
- La porta 25 (SMTP) è bloccata, ma puoi comunque utilizzare SMTP autenticato sulla porta di invio 587.
Gli intervalli IP privati, di trasmissione, multicast e di 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 di Gmail:
smtp.gmail.com
porta 465 e 587 - Gmail POP3S:
pop.gmail.com
porta 995 - IMAPS di Gmail:
imap.gmail.com
porta 993
- Google Public DNS:
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).
Le socket possono essere recuperate dopo 10 minuti di inattività; qualsiasi operazione sulla socket mantiene la socket attiva per altri 10 minuti.
Utilizzo dei socket con il server di sviluppo
Puoi eseguire e testare il codice utilizzando le socket sul server di sviluppo, senza utilizzare parametri della riga di comando speciali.