我有一个用C#编写的Minecraft软件,我想向我的网站发送心跳。我已经找到了发送已经写过的节拍的方法。
if (Server.Uri == null) return;
string uri = "http://GemsCraft.comli.com/Heartbeat.php";
// create a request
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
request.Method = "POST";
// turn request string into a byte stream
byte[] postBytes = Encoding.ASCII.GetBytes(string.Format("ServerName={0}&Url={1}&Players={2}&MaxPlayers={3}&Uptime={4}",
Uri.EscapeDataString(ConfigKey.ServerName.GetString()),
Server.Uri,
Server.Players.Length,
ConfigKey.MaxPlayers.GetInt(),
DateTime.UtcNow.Subtract(Server.StartTime).TotalMinutes));
request.ContentType = "application/x-www-form-urlencoded";
request.CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.NoCacheNoStore);
request.ContentLength = postBytes.Length;
request.Timeout = 5000;
Stream requestStream = request.GetRequestStream();
// send it
requestStream.Write(postBytes, 0, postBytes.Length);
requestStream.Flush();
requestStream.Close();
/* try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Logger.LogToConsole(new StreamReader(response.GetResponseStream()).ReadToEnd());
Logger.LogToConsole(response.StatusCode + "\n");
}
catch (Exception ex)
{
Logger.LogToConsole("" + ex);
}*/
}
现在,我希望能够在PHP中检索心跳,将其上传到SQL数据库,然后在将显示在网页上的表中显示每个用户的服务器
我该怎么做?
答案 0 :(得分:1)
portforwardpodcast的答案不太适合您的目的,这是一个让您思考的过程
服务器访问以下页面:heartbeat.php?port = 25565& maxplayers = 25& players = 2& name = Cheese_Pizza_Palace
您的PHP脚本将执行以下操作...
并显示服务器
你需要弄清楚的事情:
好狩猎!
答案 1 :(得分:0)
我会创建一个简单的php页面接受一个get变量。类似www.site.com/beat.php?lasttime=123456&serverid=1
的内容,其中数字为unix timestamp
。然后,您需要重新使用c#在网站上执行简单的get请求。最后你的php应插入一个mysql表,其中包含id
,timestamp
,server_id
等列。
首先,您需要从请求中提取数据。 php中的$ _REQUEST变量很好,因为它适用于GET和POST:
http://php.net/manual/en/reserved.variables.request.php
从var_dump开始或回显您想要的字段。一旦您可以将所需数据转换为变量,就可以完成第一部分。对于下一部分,您需要在MySQL中创建数据库和表。最好的工具是phpmyadmin。如果您有像godaddy(或其他人)这样的主机,您可以从控制面板获取此信息。如果不是,您可能需要自己安装上传phpmyadmin文件。这是一个非常简单的工具:
http://www.youtube.com/watch?v=xxQSFHADUIY
一旦您的数据库具有正确的列,您需要插入php文件中的数据。这个页面应该有所帮助: