3

首先,我需要这些信息来制作实时多人浏览器游戏。现在,我几乎可以编写所有代码,但有一个例外——必须将服务器端事件推送到客户端。所以我需要一个真正的解决方案(不像长轮询)。

我一直在阅读所有的论坛,所有的文章,但这让我感到困惑。

我想问一些问题,但如果可能的话,我需要一个深入的答复。

  1. HTML5 为我们带来了 WebSockets 功能。起初浏览器几乎不支持它,但现在,几乎所有最新的浏览器都支持它。它会成为未来的彗星解决方案吗?它可以杀死 node.js 和其他解决方案吗?

  2. 有很多选择可供选择。Node.js、socket.io、APE,使用第三方网站的 API。(如 pusher.com)什么对我最有利?我想用 PHP 编写服务器端代码。我相信如果我们使用 node.js,我也应该使用 javascript 编写服务器端代码。这是对的吗?如果没有,我如何在这些框架中使用 PHP?

  3. 我要编写多人游戏,所以性能/可扩展性是必不可少的。我认为我一开始不会有超过 100 名并发玩家,但没人知道未来会发生什么,所以我希望它能够以将来支持几千名并发玩家的方式编写代码。我有哪些选择?

  4. PHP,尽管我很喜欢这种语言本身,但它只是在这方面缺乏......我不想编写像 Travian 这样的游戏,它们很无聊。我希望它们是实时的。如有必要,我可以为这项任务学习一门新语言。您对此有何看法?

  5. 我目前正在使用 Apache 作为本地 Web 服务器。过去使用 IIS 和 Nginx。是否有专为这项工作设计的 PHP Web 服务器?据我所知,某些语言具有为并发设计的特殊 Web 服务器。(例如龙卷风网络)

在这种情况下,将 max_execution_time 设置为 0 并在无限循环中将新数据刷新到客户端不是一种选择,它甚至根本没有效果。

任何答案都非常感谢。

谢谢你。

附言。我也会用它来做其他事情,比如实时通知,但主要是我的 2D 游戏本身。

4

1 回答 1

1

PHP 不是为此而设计的。我建议您选择一种专为此类应用程序设计的语言。

要回答您的问题:

  1. Web 套接字的想法是编写一个可以与游戏服务器交互的游戏客户端。如果您正在寻找构建使用套接字的游戏,PHP 将不适合这种模式。您需要可以连续运行并且很可能是多线程的东西。您正在查看 C#、C++、Java 等。它不会使用 node.js,因为 node.js 是一个服务器。在浏览器中,您正在编写客户端。

  2. 我不确定如何对此做出回应,因为 node.js != PHP。node.js 被设计成一个 Web 服务器。这意味着服务器接受 Web 请求并发送回正确的响应(就像 Apache 的 HTTPD 一样)。PHP 是一种与 apache 交互的脚本语言,能够进行更多的动态 html 处理。

  3. 使用 C++、Java、C# 等

  4. 学习 C++、Java、C# 或任何其他支持套接字的语言。

  5. 不,假设 Web 服务器接受请求、处理它并返回结果。如果您正在寻找客户端和服务器之间的持续通信,那么 Web 服务器不是您想要的。

有些产品已经完成了大量的基础工作。我建议你看看像PhotonSmart Fox Server这样的东西

于 2012-06-06T19:02:03.253 回答