WebSockets
Cloudflareは、追加の設定なしでプロキシされたWebSocket接続をサポートしています。
| Free | Pro | Business | Enterprise | |
|---|---|---|---|---|
Availability | Yes | Yes | Yes | Yes |
Volume of concurrent connections | Low (hobby projects) | Medium (Small businesses) | High (important applications) | Custom (mission-critical applications) |
WebSocketsは、クライアントとオリジンサーバーの間で維持されるオープンな接続です。WebSockets接続内では、クライアントとオリジンがセッションを再確立することなくデータを双方向にやり取りできます。これにより、WebSockets接続内でのデータ交換が迅速になります。WebSocketsは、ライブチャットやゲームなどのリアルタイムアプリケーションでよく使用されます。
ダッシュボードでオリジンサーバーへのWebSockets接続を有効にするには:
- Cloudflareアカウント ↗にログインし、特定のドメインに移動します。
- ネットワークに移動します。
- WebSocketsのトグルをオンに切り替えます。
APIを使用してオリジンサーバーへのWebSockets接続を有効にするには、URIパスにwebsocketsを設定名として、valueパラメータを"on"に設定したPATCHリクエストを送信します。
| 製品 | 互換性 | ノート |
|---|---|---|
| SSL | はい | |
| WAF | はい* | 初期のHTTP 101リクエストは、WAF管理ルール、カスタムルール、レート制限ルール、その他のWAF機能の対象となります。ただし、一度接続が確立されると、WAFはそれ以上の検査を行いません。 |
| Workers | はい | WebSocketセッションのエンドポイントとしてDurable Objectsを使用することもでき、クライアントとのメッセージの送受信を完全に制御できます。 |
すぐには何も起こりません。Cloudflareは、ガイドラインを超える使用の一時的なスパイクを許可し、不必要な制限を適用しません。
繰り返しスパイクや高い継続的な使用は、対話を促します。Cloudflareは、アプリケーションについて詳しく知るために連絡します。悪用や攻撃が関与していると疑わない限り、顧客に連絡することなくアプリケーションに制限エラーを課すことはありません。
現在のプランレベルに対してリソースの不均衡な割合を主張する顧客には、ニーズに合ったプランレベルへのアップグレードを求められる場合があります。
Cloudflareがグローバルネットワークに新しいコードをリリースする際、サーバーを再起動することがあり、これによりWebSockets接続が終了します。
- keepalive ↗を実装します。
- オリジンおよび/またはクライアントのタイムアウト設定を確認し、削除または延長します。
WebSocketの問題を調査するには、wscat ↗のようなクライアントツールを使用すると便利です。 最小限のツールで単一のURLで問題を再現できることは、問題を絞り込むのに役立ちます。