O tráfego dos soquetes é faturado como largura de banda de saída. O App Engine é compatível com soquetes de saída por meio dos métodos da biblioteca PHP padrão, como
fsockopen
.
Para as opções compatíveis, as chamadas para
socket_get_option
retornarão um valor de simulação, e as chamadas para
socket_set_option
serão silenciosamente ignoradas. Os erros continuarão sendo gerados para as opções não aceitas.
Veja a seguir as opções aceitas:
SO_KEEPALIVE
SO_DEBUG
TCP_NODELAY
SO_LINGER
SO_OOBINLINE
SO_SNDBUF
SO_RCVBUF
SO_REUSEADDR
Limitações e restrições
A compatibilidade de soquetes com o App Engine tem as seguintes limitações:
- Não é possível criar um soquete de escuta. Você só pode criar soquetes de saída.
- O FTP não é compatível.
- Só é possível usar TCP ou UDP. Não são permitidos protocolos arbitrários.
- Não é possível se vincular a portas ou endereços IP específicos.
- A porta 25 (SMTP) está bloqueada. Ainda é possível usar SMTP autenticado na porta de envio 587.
Os intervalos de IP particulares, de transmissão, multicast e do Google são bloqueados, exceto os listados abaixo:
- DNS público do Google:
8.8.8.8
,8.8.4.4
,2001:4860:4860::8888
,2001:4860:4860::8844
porta 53 - SMTPS do Gmail:
smtp.gmail.com
portas 465 e 587 - POP3S do Gmail:
pop.gmail.com
porta 995 - IMAPS do Gmail:
imap.gmail.com
porta 993
- DNS público do Google:
Os descritores de soquete estão associados ao app do App Engine que os criou e não são transferíveis, ou seja, não podem ser usados por outros aplicativos.
Os soquetes poderão ser recuperados depois de dez minutos de inatividade. Qualquer operação de soquete mantém o soquete ativo por mais dez minutos.
Como usar soquetes com o servidor de desenvolvimento
É possível executar e testar código usando soquetes no servidor de desenvolvimento, sem empregar parâmetros de linha de comando especiais.