コンテンツにスキップ

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の有効化

ダッシュボードでオリジンサーバーへのWebSockets接続を有効にするには:

  1. Cloudflareアカウントにログインし、特定のドメインに移動します。
  2. ネットワークに移動します。
  3. WebSocketsのトグルをオンに切り替えます。

互換性ノート

製品互換性ノート
SSLはい
WAFはい*初期のHTTP 101リクエストは、WAF管理ルール、カスタムルール、レート制限ルール、その他のWAF機能の対象となります。ただし、一度接続が確立されると、WAFはそれ以上の検査を行いません。
WorkersはいWebSocketセッションのエンドポイントとしてDurable Objectsを使用することもでき、クライアントとのメッセージの送受信を完全に制御できます。

Cloudflareが期待する同時WebSockets接続数を超えた場合、私のサイトでは何が起こりますか?

すぐには何も起こりません。Cloudflareは、ガイドラインを超える使用の一時的なスパイクを許可し、不必要な制限を適用しません。

繰り返しスパイクや高い継続的な使用は、対話を促します。Cloudflareは、アプリケーションについて詳しく知るために連絡します。悪用や攻撃が関与していると疑わない限り、顧客に連絡することなくアプリケーションに制限エラーを課すことはありません。

現在のプランレベルに対してリソースの不均衡な割合を主張する顧客には、ニーズに合ったプランレベルへのアップグレードを求められる場合があります。

技術的ノート

Cloudflareがグローバルネットワークに新しいコードをリリースする際、サーバーを再起動することがあり、これによりWebSockets接続が終了します。

ベストプラクティス

  • keepaliveを実装します。
  • オリジンおよび/またはクライアントのタイムアウト設定を確認し、削除または延長します。

トラブルシューティング

WebSocketの問題を調査するには、wscatのようなクライアントツールを使用すると便利です。 最小限のツールで単一のURLで問題を再現できることは、問題を絞り込むのに役立ちます。