背景
该网站具有经典的 LAMP 设置并在虚拟专用服务器上运行。目的是添加一个 HTML5 多人游戏,在同一个域上运行,延迟高达 500 毫秒,在服务器端维护状态,并且可以支持几千个并发游戏,每个游戏在高峰时间有 2-5 名玩家。
由于我对 PHP 和服务器端的经验一般,我最初的计划是在 node.js+socket.io 中编写一个游戏演示,然后在 PHP 中重写它。但是,现在我已经编写了演示(服务器端大约 400 行代码),我对这个计划有疑问。我正在考虑两种集成方式:
用 PHP 编写游戏
优点:
- 对原始设置的更改更少
- 不必在语言、模板等方面将服务器端分成两部分。
缺点:
- 缺乏流行的 PHP 实时通信解决方案
- 可扩展性问题
并行运行 node.js 和 PHP 服务器
由于该站点托管在 VPS 上,我想我可以将 nginx 放在 Apache 和 node.js 前面,这样客户端就只需在单个域上使用单个端口。
优点:
- 能够使用 socket.io 与客户端进行实时通信
- 如果游戏服务器出现故障,站点的其余部分仍然可以运行
缺点:
- 通过添加另一个 Web 服务器和反向代理使设置复杂化
问题
正如我所说,我对服务器端的经验很少,尽管制作演示很有帮助。有没有更好的方法来做到这一点?我错过了重要的优点/缺点吗?哪些点在实践中最重要?