从playfab接收web请求到aws服务器

时间:2018-04-19 14:13:51

标签: javascript c# amazon-web-services httprequest httplistener

我有一个在AWS实例上运行的C#dotnetcore控制台应用程序,我想在这个和我的playfab云图之间添加通信。

我可以从C#控制台与playfab进行通信,这很简单,只需使用playfab nuget包。但是我在另一方面遇到了麻烦。

我只想发送一些不同的简单信息,所以我不想找太复杂的东西。到目前为止我所做的是,我在控制台应用程序的开头添加了以下内容:

var listener = new HttpListener();
listener.Prefixes.Add("http://+:80/");

listener.Start();
Writer.WriteBuffer("Listening...");
HttpListenerContext context = listener.GetContext();
HttpListenerRequest request = context.Request;
// Obtain a response object.
HttpListenerResponse response = context.Response;
// Construct a response.
Writer.WriteBuffer("Context: " + context.ToString());
Writer.WriteBuffer("request: " + request.ToString());
Writer.WriteBuffer("response: " + response.ToString());

string responseString = "<HTML><BODY> Hello world!</BODY></HTML>";
byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
// Get a response stream and write the response to it.
response.ContentLength64 = buffer.Length;
System.IO.Stream output = response.OutputStream;
output.Write(buffer, 0, buffer.Length);
// You must close the output stream.
output.Close();
listener.Stop();

Writer.WriteBuffer本质上是编写Console.Write的包装器,只是以更好的方式为我编写内容。我看到“倾听......”出现了,听起来很棒。

现在,我从playfab复制了一个例子,并稍微调整了一下。 cloudscript是在js中,所以这是我从playfab运行的:

var headers = {
    "X-MyCustomHeader": "Some Value"
};

var body = {
    input: args,
    userId: currentPlayerId,
    mode: "foobar"
};

var url = "http://11.111.111.1/";
var content = JSON.stringify(body);
var httpMethod = "post";
var contentType = "application/json";

// The pre-defined http object makes synchronous HTTP requests
var response = http.request(url, httpMethod, content, contentType, headers);
return { responseContent: response };

11.111.111.1是我放置AWS实例的IP地址的地方(由于显而易见的原因,我已将其更改)。

运行时,我得到“httpRequestError”:“超时”。 当我在AWS上查看时,除了“倾听......”之外我没有打印出任何其他内容,因此它还没有处理任何内容。

我不太确定问题在于说实话。

0 个答案:

没有答案