将实时多人游戏添加到PHP网站的不同方法的优缺点 背景

将实时多人游戏添加到PHP网站的不同方法的优缺点 背景,php,node.js,architecture,websocket,multiplayer,Php,Node.js,Architecture,Websocket,Multiplayer,该网站有一个经典的LAMP设置,并运行在虚拟专用服务器上。其目的是添加一个HTML5多人游戏,该游戏在同一个域上运行,延迟高达500毫秒,在服务器端保持状态,并在高峰时间支持数千个并发游戏,每个游戏2-5名玩家 由于我对PHP和服务器端基本上没有什么经验,我最初的计划是在node.js+socket.io中编写一个游戏演示,然后在PHP中重写它。然而,现在我已经编写了演示(服务器端大约400行代码),我对这个计划有疑问。我正在考虑两种整合方式: 用PHP编写游戏 优点: 减少对原始设置的更改

该网站有一个经典的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服务器和反向代理使设置复杂化
问题:
正如我所说的,我对服务器端几乎没有经验,尽管制作演示帮助很大。有更好的方法吗?我是否遗漏了重要的优点/缺点?实践中哪一点最重要?

您是否考虑过在另一个端口上运行游戏服务器(node.js)?这确实使同时部署两个web服务变得更容易。如果这不是一个选项,您可能需要考虑使用反向代理。它以良好的性能和易于配置而闻名(我的意见)我不是很了解node.js,但从我读到的信息来看,它可能比PHP更适合实时通信。为什么你会说运行单独的游戏服务器更容易?你是说部署新版本更容易吗?在另一个端口上运行node.js是一个我不喜欢的选项,因为URL。这就是为什么我更喜欢使用nginx,我在问题中已经提到了这一点。