Binanceのチャートが動かない?ネットワーク接続とWebSocketの排査手順
チャートを注視しているときに最も困るのは、Binanceの価格データが長時間更新されないことです。外で大きなニュースが出ているのに、価格が止まったままでは取引のチャンスを逃してしまいます。まず Binance公式サイト をリロードしてページが生きているか確認し、次に Binance公式アプリ を開いて同じ通貨ペアの価格を比較してください。両方の端末で止まっている場合は、ローカルからBinanceのデータゲートウェイまでのプッシュ経路が切断されています。iOSインストールガイド を参考に最新版を再インストールすることで、基盤となるWebSocketライブラリが修復されることも多いです。簡単に言うと、チャートが更新されない原因の9割は、キャリアやWiFiルーターによるWebSocket接続の遮断、アプリのキャッシュ肥大化、あるいはクライアントの再接続ロジックが「偽接続」状態に陥っていることです。これら3つのポイントを順に確認すれば基本的には回復します。
なぜBinanceのチャートは通常のHTTPではないのか
通常のブラウザでウェブページを開くときは1回のHTTPリクエストに対して1回のレスポンスが返ってきますが、リアルタイムのチャートを実現するにはサーバーからデータを「プッシュ」し続ける必要があります。これがWebSocketです。Binanceのデータストリームは wss://stream.binance.com:9443 というドメインを通っており、ポートは443または9443が使用されます。この接続がどこか一箇所でも遮断されると、価格は最後に受信したデータのまま固定され、「更新されない」ように見えます。
よくある切断のシナリオ
- 家庭用ルーターの「省電力モード」や「ファイアウォール詳細検知」により、5分間データが流れない長接続が回収されてしまう。
- 会社のネットワーク出口でSSLのディープインスペクションが行われ、WebSocketのハンドシェイクが通常のHTTPSにダウングレードされて昇格できなくなる。
- スマホをWiFiから5Gに切り替えた瞬間、接続は切れているのにアプリがそれを検知できていない。
- システムが深いスリープ状態に入った後、バックグラウンドプッシュがAndroid/iOSによって凍結される。
ステップ1:チャートが止まっているのかUIがフリーズしているのかを判断
アプリのチャート画面を開き、手動でプルダウン更新を行って、上部のタイムスタンプが変化するか確認してください。
UIがフリーズしているが接続は生きている場合
- 現象:プルダウン更新後に時刻が更新され、価格も一度動いた。
- 対処:アプリのバックグラウンドプロセスを一度終了させて再起動してください。ネットワーク設定を変える必要はありません。
- よくある原因:Androidシステムが節電のためにアプリのUIスレッドを凍結した。
接続が本当に切れている場合
- 現象:プルダウン更新後も時刻が数分前のまま。
- 対処:WebSocketの経路をさらに排査します。
- 小技:別の通貨ペアに切り替えてから戻すと、強制的に再接続がトリガーされます。
ステップ2:アプリのキャッシュをクリアしてWebSocketハンドネームを解放
アプリを長時間再起動しないと、ローカルのIndexedDBやチャートキャッシュが数百MBに達し、新しい接続が確立できなくなることがあります。
Androidでのクリア手順
- Binanceアプリのアイコンを長押しして「アプリ情報」を選択。
- 「ストレージとキャッシュ」に進む。
- 「キャッシュを消去」をクリック(50MB以下に抑えるのが理想的)。
- 「ストレージを消去(データを消去)」はクリックしないでください。ログイン状態まで消えてしまいます。
iOSでのクリア手順
- 「設定」-「一般」-「iPhoneストレージ」に進む。
- Binanceを見つけてタップ。
- キャッシュが200MBを超えている場合は、「アプリを取り除く」か、一度アンインストールして再インストールしてください。
- iOSには個別のキャッシュクリアボタンがないため、再インストールが最も効果的です。
ステップ3:DNSを切り替えてクリーンな経路を確保
一部のプロバイダーは stream.binance.com のIPに対してスマートルーティングを行っており、それが接続の不安定さを招くことがあります。パブリックDNSに変更することで、この問題を回避できます。
- Cloudflare:1.1.1.1 および 1.0.0.1
- Google:8.8.8.8 および 8.8.4.4
- Quad9:9.9.9.9 および 149.112.112.112
WindowsでのDNS変更
- コントロールパネルの「ネットワークと共有センター」を開く。
- 現在のネットワークアダプターの「プロパティ」をクリック。
- 「インターネット プロトコル バージョン 4 (TCP/IPv4)」を選択。
- 優先DNSに 1.1.1.1、代替DNSに 8.8.8.8 を入力。
- コマンドプロンプトで
ipconfig /flushdnsを実行してキャッシュをクリア。
スマホでのDNS変更
AndroidはWiFi設定を「静的」に変更してDNSを入力します。iOSはWiFi詳細画面の「DNSを構成」を「手動」に変更します。
ステップ4:強制再接続のいくつかの小技
- アプリのチャート画面で、通貨ペアを一度 BNB/USDT などに変えてから戻すと、現在の購読が解除され再購読されます。
- 現物取引画面に入ってから戻ることで、ハートビート(生存確認)のリセットをトリガーします。
- アプリの「データ節約モード」をオフにします。一部の地域ではデフォルトで有効になっており、WebSocketトラフィックを制限することがあります。
- VPNを使用している場合は、一度オフにして直接接続で比較してみてください。
PCブラウザでの追加排査ポイント
ブラウザでBinanceのウェブ版を開いてチャートが更新されない場合:
| 症状 | 確認ポイント | 対処法 |
|---|---|---|
| コンソールに WebSocket 1006 エラー | プロキシによる切断 | 拡張機能をオフにするかネットワーク変更 |
| コンソールに 429 エラー | リクエスト頻度過多 | 1分待ってからリロード |
| エラーはないがデータが静止 | タブのスリープ | Chromeの「メモリセーバー」をオフにする |
| CPU使用率が急上昇 | 広告ブロックの競合 | uBlockなどのプラグインを一時無効化 |
よくある質問
Q1:ウェブ版のチャートは重いのに、アプリでは正常なのはなぜですか? A:ブラウザの拡張機能、タブの節電ポリシー、ハードウェアアクセラレーションのいずれかがWebSocketを妨害している可能性があります。シークレットウィンドウで開いてみて、正常に動くなら拡張機能が原因です。
Q2:VPNを繋ぐとチャートが動かなくなり、直連だと正常です。
A:一部のVPNのUDPプロトコルは長接続のサポートが弱いです。TCPモードに切り替えるか、stream.binance.com をスプリットトンネルで直連設定にしてください。
Q3:チャートが突然すべて0になったり「--」と表示されるのは? A:購読がまだ確立されていません。通常はアプリ起動直後の3秒程度で解消されますが、10秒経っても0のままならWebSocketのハンドシェイクに失敗しています。
Q4:パソコンの時刻が5分遅れていますが、チャートに影響しますか? A:はい。BinanceのWSSハンドシェイクではSSL証明書の有効期限をチェックするため、システム時刻が5分以上ずれていると接続に失敗することがあります。時刻設定を「自動」にしてください。
Q5:アプリをバックグラウンドから復帰させると、チャートに遅延が出ます。 A:Android/iOSの節電メカニズムがバックグラウンドの長接続を凍結するためです。「バックグラウンド活動を制限しない」設定にするか、Binanceを節電のホワイトリストに入れてください。
Q6:同じWiFiで家族のスマホは正常なのに、私のはダメなのはなぜ? A:デバイス固有の問題である可能性が高いです。ルーターとスマホを再起動するか、WiFi設定を一度削除して繋ぎ直してください。ルーター側でデバイスが制限されている可能性もあります。
まとめ
チャートが更新されない問題は、突き詰めればWebSocketの長接続の問題です。排査の順序は「UIフリーズか接続断かの確認」「キャッシュクリアによるハンドルの解放」「DNS変更による経路の回避」の3つを覚えておきましょう。数日おきにアプリを再起動し、システムメモリに500MB以上の余裕を持たせ、取引中はデバイスを深い節電状態にしないことで、ほとんどのチャート遅延は防げます。どうしても直らないときは、一度チャートから離れてリフレッシュする合図だと思って、お茶でも飲んで戻ってくれば解決しているかもしれません。