0

几周以来,我一直在自己的基于 ssl 的多进程多文件描述符线程服务器上工作,不用说它可以处理大量的惩罚。我正在以面向对象的方式用 C++ 编写它,它几乎完成了信号处理(包括原子访问)和异常/errno.h 处理。

目标是使用服务器为 Android/iOS 制作多人应用程序和游戏。我实际上非常接近完成,但最近我突然想到我可以使用 Apache 来完成它。

我尝试做一些研究,但找不到任何东西,所以也许有人可以帮助我决定天气我应该完成我的服务器并使用它或使用 apache 或其他什么。apache 与自己​​的服务器相比有哪些优缺点?

感谢愿意参与本次讨论的各位!

4

2 回答 2

1

即使存在经过充分验证的替代方案,您也始终可以编写自己的软件,但您应该意识到这样做的原因以及成本是多少。

例如,您的原因可能是:

  • 现有软件太慢/高延迟/难以同步
  • 现有的软件无法为我的目的而扩展
  • 您的需求不会与软件强加的架构重叠 - 例如,如果您需要 P2P 网络,那么基于客户端/服务器的 HTTP 协议不是您的最佳选择
  • 您只是想在探索低级协议的过程中获得乐趣

我相信上述任何一项都可能适用于您的案件,但您没有提供太多细节,所以如果我错了,我深表歉意。

成本可能是:

  • 您的架构可能会变得混乱 - 例如,您可能会陷入让您的服务器忙于计算是否有枪击中敌人的陷阱,当 10 个客户端试图启动 TCP 连接时,或者您的持久存储例程中的缓冲区溢出时关闭整个服务器
  • 当您应该处理游戏引擎时,您会花时间在较低级别的东西上
  • 安全性很难做到正确,需要多年的入侵测试和正式证明(即使您使用的是 openSSL)
  • 制定自己的协议意味着制造自己的错误
  • 您自己的协议意味着您必须制作自己的调试器(例如,您不能使用 curl 进行测试或使用 HTTP 代理进行跟踪)
  • 您必须解决现有解决方案已经解决的许多问题。例如缓存、身份验证、重定向、日志记录、多节点扩展、资源分配、代理
  • 对于你自己的东西,你只能向自己寻求帮助
于 2012-05-11T11:05:00.450 回答
1

我们需要有关您打算完成的工作的更多详细信息,但如果它符合您的需求,无论如何我都会选择 Apache:

  • 它经过了各种案例和负载的实战测试
  • 您可以从所有可用的模块中受益(参见http://httpd.apache.org/docs/2.0/mod/
  • 您可以从定期的安全补丁中受益
  • 你不必自己维护它!

希望这可以帮助!

于 2012-05-10T22:13:48.843 回答