LibGDXネットワーク(Networking)

2915 ワード

LibGDXには、プラットフォーム間ネットワーク上で動作するクラスが含まれています.これらのクラスは一般にGdxと呼ぶ.net (source)
とくせい
  • クロスプラットフォームHTTP要求
  • はマルチプラットフォームTCPクライアントとサーバソケット(GWTを除く)をサポートし、
  • の設定が可能である.
  • 低遅延の最適化TCPクライアントおよびサーバについて
  • を設定する.
  • はプラットフォームにまたがるブラウザにアクセスする.(たとえば、ゲームでWebサイトにリンクを作成し、すべてのプラットフォームでブラウザでWebサイトにリンクを開くことができます.)

  • インプリメンテーション
    クラスの説明:1.Net.JAvaはプラットフォームネットワークにまたがるインタフェースです.これは、ネットワークと通信するために必要なオブジェクトです.Socket.JAvaは、リモートソケットアドレス、接続状態、およびjavaを介して提供する.io.InputStreamとjava.io.OutputStreamはソケットのインタフェースを使用します.SocketHints.JAvaは、TCPクライアントソケットを構成するクラスである.ServerSocket.JAvaは、TCPサーバソケットを作成するためのインタフェースです.接続されたTCPクライアントを取得するための標準的なaccept()メソッドを提供します.ServerSocketHints.JAvaは、TCPサーバソケットを構成するためのクラスです.HttpStatus.JAvaは、返されたステータスコードを表示するためにサービスを提供します.HttpParameterUtils.JAvaは、HTTPリクエストに実用的なメソッドを提供するクラスです.HttpRequestBuilderは、HttpRequestsの作成を支援するクラスです.
    TCPクライアントソケットを作成するには、次のコードクリップを使用します.
    Socket socket = Gdx.net.newClientSocket(Protocol protocol, String host, int port, SocketHints hints);
    

    TCPサービスを作成するには
    ServerSocket server = Gdx.net.newServerSocket(Protocol protocol, int port, ServerSocketHints hints);
    

    HTTPリクエストを送信するには、次の手順に従います.
    HttpRequestBuilder requestBuilder = new HttpRequestBuilder();
    HttpRequest httpRequest = requestBuilder.newRequest().method(HttpMethods.GET).url("http://www.google.de").build();
    Gdx.net.sendHttpRequest(httpRequest, httpResponseListener);
    

    パラメータを持つGET HTTPリクエストを送信するには、次のコマンドを使用します.
    HttpRequestBuilder requestBuilder = new HttpRequestBuilder();
    HttpRequest httpRequest = requestBuilder.newRequest().method(HttpMethods.GET).url("http://www.google.de").content("q=libgdx&example=example").build();
    Gdx.net.sendHttpRequest(httpRequest, httpResponseListener);
    

    システムブラウザを使用してアドレスを開くには、次の手順に従います.
    Gdx.net.openURI(String URI)
    

    注意:異なるプラットフォームでネットワーク接続を行う場合は、さまざまな注意事項に注意する必要があります.
  • TCPクライアントとサーバソケットはGWTでは機能しません.これはjavaのためです.NetはGWTではサポートされておらず,この点ではwebsockets以外に実行可能な代替案はない.
  • headlessプラットフォームでは、Android DaydreamsまたはAndroid Live壁紙はブラウザのオープンをサポートしていない.これは、実装またはプラットフォームの制限によるものである.
  • Android:Androidマニフェストにいる必要があります.xmlファイルで次の権限を宣言すると、ネットワークにアクセスできます.
  • Androidでは、プライマリスレッド上のアクセスネットワークを無効にすることはできません.これは、ネットワーク操作がプライマリスレッドを停止することを防止するためです.see here
  • あなたのプラットフォームが携帯電話の設備である場合、ネットワークを実現する方法に注意してください.無線ネットワーク自体が大電力出力(消費電力)です.また、1 G/2 G/3 G/4 G LTEネットワークに適用される可能性のあるデータ制限にも注意してください.LibGDX構成最適化は低遅延を可能にするが,TCPの利点は依然として存在する.
  • でサポートされているネットワーク構成は、バックエンドとjava実装の間で異なります.
  • データの送受信時、バッテリ消費は正常な現象
  • に属する.
  • POSTリクエストにContent-Typeヘッダが設定されていることを確認します.すべてのバックエンドが同じ値にデフォルト設定されているわけではありません(下位実装の違いにより).このヘッダの最も一般的な値はアプリケーション/x-www-form-urlencodedです.ただし、送信するデータ型によっては、アプリケーション/xmlやアプリケーション/jsonなどの異なる値が必要になる場合があります.

  • See alsoモバイルデータ電池の効率に関する文章Gdx.Netクラスのソースコード