#php editor Xinyi は今日、「http クライアント: ネットワークがない場合のタイムアウトの高速化」というツールを紹介します。不安定な環境や非ネットワーク環境では、タイムアウトが長いとユーザー エクスペリエンスが低下する可能性があります。この http クライアント ツールは、この問題の解決に役立ち、タイムアウト メカニズムを最適化して、ネットワークがない場合のタイムアウトを短縮し、アプリケーションの応答速度とユーザー エクスペリエンスを向上させます。では、このツールの具体的な機能と使い方を見ていきましょう!
go で http get リクエストを行うと、ネットワーク接続がない場合でも、完全なタイムアウトを待ってからエラーが返されます。
内部ではエラーがすぐに認識されていると思います。タイムアウトを待つのではなく、できるだけ早くエラーが伝播するようにしたいと考えています。ネットワークが存在している間は 20 秒間試してみたいのですが、速度が遅いです。この動作をクライアントに設定するにはどうすればよいですか?
問題のコードを表示します:
リーリー大事なことですが、私は gomobile を使用しており、iOS シミュレーターで実行しています。
答えは非常に簡単です。golang はネットワークが存在しないことを内部的に認識し、20 秒のタイムアウトを待たずに障害を即座に伝達します。ネットワーク上には何も送信されず、待機することもありません。 Go ではすべてが正常に動作しているようで、サンプル コードを変更する必要はありません。
問題は依然として再発し続けていますが、iOS シミュレータでのみ発生しています。これは、iOS シミュレーターが接続をホスト オペレーティング システムにマッピングする方法に特有の問題であると思われます。これが長年にわたる問題なのか、MacOS とエミュレータの組み合わせに伴う 1 回限りの問題なのかはわかりません。ホスト MacOS および実際の iOS デバイスでは正常に動作しますが、ネットワーク インターフェイスがない場合はすぐにタイムアウトになります。
これは同じ結論に至るための単なる別のパスであるため、追加のリクエストは必要ありません。他の失敗が発生する可能性が高くなります。ネットワークの問題と特定のサービスの問題を区別したり、(接続されたネットワーク インターフェイスが存在した後) 本当のネットワーク ステータスのより迅速なインジケーターを取得したりするのに役立つ場合があります。
以上がhttp クライアント: ネットワークがない場合のタイムアウトの高速化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。