通过XTC_APP_ENDPOINT与嵌入式HTTP服务器通信

时间:2016-05-09 17:19:34

标签: unity3d xamarin xamarin-test-cloud

我指的是此视频中概述的实施方案: 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),
};

在App中:

HttpListener _listener = new HttpListener();
var prefixes = new [] {
    "http://*:8081/",
};
foreach (string s in prefixes)
    _listener.Prefixes.Add (s);
_listener.Start ();

这在本地运行很好,但是当尝试在Test Cloud中运行时,我在测试中获得了System.TimeoutException,同时尝试连接到游戏服务器。

从视频中,詹姆斯明确表示你必须在端口8081上听,但这是几年前的事情,我想知道它是否已经改变。我也尝试将8081更改为37777。但我仍然有同样的结果。

我注意到XTC_APP_ENDPOINT env变量返回的内容如下:http://devicehost7.prod:37777/wd/token-1acaf8c0-2987-4a49-aa5b-3ab795ecb910/

我调整了服务器以使用37777,结果相同。 我再次尝试调整我的前缀:var prefixes = new [] { "http://*:37777/*/token-*/", };,但总是得到相同的结果(System.TimeoutException)。

我是否可以阅读有关如何与嵌入式HTTP服务器交互的文档?或者有人能指出我正确的方向吗?

谢谢, 洛伦

1 个答案:

答案 0 :(得分:1)

在支持说话后,似乎TestCloud为XTC_APP_ENDPOINT生成了错误的值。

他们已经解决了这个问题,现在我的原始代码现在可以在端口8081上完美运行了!