首先,我需要这些信息来制作实时多人浏览器游戏。现在,我几乎可以编写所有代码,但有一个例外 - 服务器端事件必须推送到客户端。所以我需要一个真正的解决方案(与长轮询不同)。
我一直在阅读所有的论坛,所有的文章,但这让我感到困惑。
我想问一些问题,但如果可能的话,我需要深入的答复。
-
HTML5为我们带来了WebSockets功能。起初浏览器几乎不支持它,但现在,几乎所有最新的浏览器都支持它。它会成为未来的彗星解决方案吗?它可以杀死节点.js和其他解决方案吗?
-
有很多选项可供选择。Node.js,socket.io,APE,使用第三方网站的API。(如 pusher.com)什么对我最有益?我想用PHP在服务器端编码。我相信如果我们使用 node.js,我也应该使用 javascript 在服务器端编码。正确吗?如果没有,我如何在这些框架中使用 PHP?
-
我将编写一个多人游戏,因此性能/可扩展性至关重要。我不认为一开始我会有超过 100 个并发玩家,但没有人知道未来会发生什么,所以我希望它能够像将来支持数千个并发玩家一样进行编码。我有哪些选择?
-
PHP,尽管我喜欢语言本身,但它只是缺乏这个领域......我不想像Travian那样编写游戏,它们很无聊。我希望它们是实时的。如有必要,我可以为这项任务学习一门新语言。你对此有何看法?
-
我目前正在使用 Apache 作为本地 Web 服务器。过去使用IIS和Nginx。是否有为这项工作设计的 PHP Web 服务器?据我所知,有些语言有为并发而设计的特殊Web服务器。(例如龙卷风网)
在这种情况下,将max_execution_time设置为 0 并在无限循环中将新数据刷新到客户端不是一种选择,它甚至根本没有效果。
任何答案都非常感谢。
谢谢。
附言。我也会将其用于其他事情,例如实时通知,但主要是我的2D游戏本身。
PHP 不是为此而设计的。 我建议您选择一种为此类应用程序设计的语言。
要回答您的问题:
-
Web 套接字的想法是编写一个可以与游戏服务器接口的游戏客户端。 如果你想构建一个使用套接字的游戏,PHP将不适合这个模式。 你需要一些可以连续运行并且很可能是多线程的东西。 您正在查看 C#、C++、Java 等。 它不会节点.js因为节点.js是服务器。 在浏览器中,您正在编写客户端。
-
我不确定如何回应这一点,因为节点.js != PHP。 node.js被设计为一个Web服务器。 这意味着服务器接受Web请求并发回正确的响应(想想Apache的HTTPD)。 PHP是一种脚本语言,它与apache接口,能够进行更多的动态HTML处理。
-
使用C++、Java、C# 等
-
学习C++、Java、C# 或任何其他支持套接字的语言。
-
不,Web 服务器应该接受请求、处理请求并返回结果。 如果您正在寻找客户端和服务器之间的持续通信,则 Web 服务器不是您要查找的。
有些产品已经处理了很多基础工作。 我建议你看看像光子或智能狐狸服务器这样的东西