ソケットからのトラフィックは送信帯域幅として課金されます。App Engine では、標準の PHP ライブラリのメソッド(
fsockopen
など)を使用したアウトバウンド ソケットがサポートされます。サポートされているオプションに関しては、socket_get_option
を呼び出すとモック値が返され、socket_set_option
の呼び出しは通知なく無視されます。サポートされていないオプションの場合は、引き続きエラーが発生します。次のオプションを使用できます。
SO_KEEPALIVE
SO_DEBUG
TCP_NODELAY
SO_LINGER
SO_OOBINLINE
SO_SNDBUF
SO_RCVBUF
SO_REUSEADDR
制限事項
App Engine のソケット サポートには次の制限があります。
- リッスン ソケットは作成できません。作成できるのはアウトバウンド ソケットだけです。
- FTP はサポートされません。
- 使用できるのは TCP と UDP だけで、任意のプロトコルを使用できるわけではありません。
- 特定の IP アドレスまたはポートにバインドすることはできません。
- ポート 25(SMTP)はブロックされます。送信ポート 587 の認証済みの SMTP は使用できます。
以下に示すものを除いて、プライベート、ブロードキャスト、マルチキャスト、Google の IP 範囲はブロックされます。
- Google Public DNS:
8.8.8.8
、8.8.4.4
、2001:4860:4860::8888
、2001:4860:4860::8844
のポート 53 - Gmail SMTPS:
smtp.gmail.com
ポート 465 とポート 587 - Gmail POP3S:
pop.gmail.com
ポート 995 - Gmail IMAPS:
imap.gmail.com
ポート 993
- Google Public DNS:
ソケット記述子は作成元の App Engine アプリに関連付けられ、移行可能なものではありません(他のアプリでは使用できません)。
ソケットはアクティブでない状態が 10 分続くと回収されます。ソケットが維持される時間は、なんらかのオペレーションが行われると 10 分延長されます。
開発用サーバーでソケットを使用する
ソケットを使用したコードは、開発用サーバーでそのまま実行してテストできます。特別なコマンドライン パラメータは必要ありません。