php - 从 C# 应用程序获取心跳并将其发布到网站

标签 php html mysql heartbeat

我有一个用 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 数据库,然后在将显示在网页上的表格中显示每个用户的服务器

我该怎么做?

最佳答案

portforwardpodcast 的答案不太适合您的目的,这里有一个供您思考的过程

服务器访问以下页面:heartbeat.php?port=25565&maxplayers=25&players=2&name=Cheese_Pizza_Palace

您的 PHP 脚本将执行以下操作...

  • 检查每个值,确保它们都是您想要的类型(整数/字符串)
  • 连接到数据库
  • 如果数据库中的服务器已存在,则更新该服务器,如果不存在则创建
  • 返回一些值,以便服务器知道它已成功完成。

并显示服务器

  • 获取所有“事件”服务器
  • 循环遍历并显示每一个。

您需要弄清楚的事情:

  • 如何确定正常运行时间
  • 如何确定“事件”服务器
  • 如何更新/创建 MySQL 条目
  • 如何(正确)连接到数据库。我建议使用 PDO,因为您使用的是 PHP。学习起来有点困难,但比直接编写查询安全得多。
  • 如何循环访问所有 GET 变量。

狩猎愉快!

关于php - 从 C# 应用程序获取心跳并将其发布到网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20296372/

相关文章:

MySQL 将常量数组设置为变量

PHP OOP 入门

javascript - 如何使用滚动顶部方法

html - 没有用于 HTML5 <video> 的标准全屏按钮?

python - Flask/SQLAlchemy - 创建具有关系的模型时出错

php - 我想根据连接的列对数据进行排序

php - 如果该值显示两次,则返回一行

php - 如何通过cron替换mysql表的内容?

php - javascript 函数在 php echo 中工作吗?

html - h264/aac 编码的视频不能在 Edge 中播放,但可以在 Chrome 和 Firefox 中播放