このビデオで概説されている実装について言及しています: https://www.youtube.com/watch?v=mnAenNaEpJk
これは、任意のポートでデバイスの IP アドレスを使用してローカルで実行すると正常に動作します (クライアントとサーバーが同じポートを使用している限り)。
テスト クライアント:
var url = isTestCloud ? Environment.GetEnvironmentVariable("XTC_APP_ENDPOINT") : "http://" + deviceIp + ":8081";
HttpClient client = new HttpClient {
BaseAddress = new Uri(url),
};
アプリ内:
HttpListener _listener = new HttpListener();
var prefixes = new [] {
"http://*:8081/",
};
foreach (string s in prefixes)
_listener.Prefixes.Add (s);
_listener.Start ();
これはローカルで実行するとうまく機能しますが、Test Cloud で実行System.TimeoutException
しようとすると、ゲーム サーバーに接続しようとしているときに Test でエラーが発生します。
ビデオから、ジェームズはポートでリッスンしているに違いないことを明らかにしていますが8081
、これは数年前のことであり、変更されているかどうか疑問に思っています. にも変え8081
てみました37777
。しかし、それでも同じ結果が得られました。
XTC_APP_ENDPOINT 環境変数が次のようなものを返すことに気付きました。http://devicehost7.prod:37777/wd/token-1acaf8c0-2987-4a49-aa5b-3ab795ecb910/
を使用するようにサーバーを調整しましたが37777
、同じ結果です。プレフィックス: を再度調整しようとしましvar prefixes = new [] { "http://*:37777/*/token-*/", };
たが、常に同じ結果 ( System.TimeoutException
) が得られます。
組み込み HTTP サーバーと対話する方法に関して、私が読むことができるドキュメントはありますか? または、誰かが私を正しい方向に向けることができますか?
ありがとう、ローレン