(PHP、Javascript、AJAX、Node.js、MYSQL)短轮询VS长轮询VS WebSocket
这将是一个相当长和复杂的调查,包括一个以上的问题,所以请容忍我在这里 我对网络开发还比较陌生,目前正在开发一款基于反射的在线多人浏览器游戏,玩家可以使用WASD键控制并与化身战斗。由于其基于反射的特性,玩家在不超过几毫秒的延迟内获得敌人行动的实时更新是有害的 <>太长了,读不下去了。 然而,我最近才发现WebSocket和socket.io的概念。我知道这很可能是构建它的最佳方法,但是我不熟悉node.js,我已经用PHP构建了我游戏的核心(注册、布局、数据库管理、排队寻找玩家等等),这意味着,如果我要实现WebSocket,我不仅需要学习一种全新的技术,还需要在其中重写我的整个后端。。。或者,我可以同时使用PHP和node.js,但我必须在一个非常笨拙的端口上打开我的node.js(因为xampp已经使用了80和443),这可能会给我的许多潜在用户带来不便。此外,我计划使用一个网络托管提供商,我不确定他们是否会支持。(他们会吗?这是一个重大问题吗?) (直截了当地说:) 我已经编写了短轮询和长轮询代码:(PHP、Javascript、AJAX、Node.js、MYSQL)短轮询VS长轮询VS WebSocket,javascript,php,node.js,ajax,socket.io,Javascript,Php,Node.js,Ajax,Socket.io,这将是一个相当长和复杂的调查,包括一个以上的问题,所以请容忍我在这里 我对网络开发还比较陌生,目前正在开发一款基于反射的在线多人浏览器游戏,玩家可以使用WASD键控制并与化身战斗。由于其基于反射的特性,玩家在不超过几毫秒的延迟内获得敌人行动的实时更新是有害的 太长了,读不下去了。 然而,我最近才发现WebSocket和socket.io的概念。我知道这很可能是构建它的最佳方法,但是我不熟悉node.js,我已经用PHP构建了我游戏的核心(注册、布局、数据库管理、排队寻找玩家等等),这意味着,如果
我知道我问了很多问题,如果我的问题太长/太模糊,我会提前道歉。感谢大家的投入!在高度优化的本机代码中,开放互联网上的毫秒延迟已经够难了,在浏览器中使用Javascript是相当困难的。任何额外的毫秒都会浪费在从数据库来回访问上se只会让事情变得更糟。你绝对希望服务器纯粹在内存中运行,并立即将数据推送到套接字。这基本上可以用任何语言实现,包括PHP,但它的应用程序结构与典型的PHP MySQL页面略有不同,在典型的共享主机上根本无法工作。我明白了。你会怎么做那么你推荐;我有什么选择?使用websockets构建我的游戏并在个人计算机上托管?我不能建议你在哪里托管它,有很多选择。可能所有这些都在你的舒适区之外,你可能需要学习一两件关于服务器管理的事情,但这都是可行的。