php - 在 http 请求中进行大量的 php 操作,现实吗? (创建很多对象等)

标签 php

我开发了一个棋盘游戏应用程序(适用于 android/iphone)并向其中添加了一个多人游戏组件。正在考虑将 App Engine (java) 用于后端,因此以这种方式实现,但事实证明 CPU 成本可能会太高(App Engine 可能不是此类应用程序的最佳选择)。

我对 php 的性能没有太多经验,我想知道是否有人可以给我一个想法,如果我正在将它转换为 php 的错误路径。基本步骤是:

  1. 向我的服务器发出了 Http 请求,玩家正在尝试执行移动(这是一款回合制游戏)。
  2. 从数据库中获取游戏状态。这可能会存储为一个平面 json 字符串(为游戏状态创建模式没有多大意义)。
  3. 将 json 字符串反序列化为可用的游戏状态对象(如房屋、汽车等)。
  4. 最后执行游戏状态操作(例如将玩家的汽车移到新房子等)。
  5. 序列化修改后的游戏状态,持久化回数据库。
  6. 将 json 响应发送回玩家,其中将包含更新的游戏状态。

我不知道在单个 http 操作的上下文中尝试这样做是否需要大量工作。一些数字:

  1. 预计在任何给定时间都有大约 500 名玩家使用该服务。
  2. 每个游戏只包含 2 到 8 个玩家,每个游戏都是完全独立的。
  3. 序列化后的 json gamestate 对象大小约为 25k。
  4. json gamestate 对象必须反序列化大约 300 个对象才能恢复游戏的完整状态(房屋、汽车等)。

这不现实吗?我认为最好的解决方案是获得一个专用服务器,并将所有游戏状态留在内存中,但我现在正在尝试使用一些共享主机平台。这意味着我必须不断地来回访问数据库以获取游戏状态、反序列化和序列化。

感谢您的任何想法

最佳答案

如前所述,任何正规的托管公司都能轻松应对流量。我只想提几点:

您确定每次都来回发送整个游戏状态吗?您应该能够仅发送更改的内容...当然,这在很大程度上取决于您的游戏的运行方式。

您可能需要考虑的唯一其他问题是滞后:服务器请求很容易花费一秒钟或更多时间来完成整个编码/发送/等待/接收/解码过程。现在,如果您的游戏是回合制的,这可能不是主要障碍,但始终要牢记这一点(还要考虑连接速度较慢的人,即没有 3G 覆盖)。

无论如何,你现在看起来很不错。如果我是你,我会去写一些测试看看结果如何。除此之外,祝你好运! ;-)

关于php - 在 http 请求中进行大量的 php 操作,现实吗? (创建很多对象等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4927760/

相关文章:

php - 使用布局 C 从 PayPal PayFlow 获取错误 160

php - cakephp 选择多个仅传递第一个值

javascript - Javascript 重定向不适用于 IFrame,无需 IFrame 也可工作

PHP 内存缓存连接

php - zip 文件的校验和

php - 如何编写 PHP 双重选择加入订阅表单

php - 这个 AS3 代码与 PHP 文件通信有什么问题?

php - 如何在没有 root 访问权限的 Linux 上的非标准文件夹中安装 PHP SSH2 扩展

php - 在 Yii 中不在对象上下文中时使用 $this

PHP pthreads 工作很奇怪