【发布时间】:2023-03-28 17:06:01
【问题描述】:
我正在尝试用 JS 制作简单的井字游戏。
我几乎做了所有的事情。现在只有一件事要做。
我想让它可以与某人在线玩。
我想通过互联网在两个游戏之间发送数据。
很遗憾,我的服务器不支持 Node.JS。
有没有办法在没有任何服务器端“套接字”的情况下实现它。
我想我可以用XMLHttpRequest() 来保存/加载数据到/从服务器文件中并像这样玩,但我认为这需要很多代码,也许对于 ttt 它会足够快,但是对于更复杂的游戏是不够的。
我知道这很难,但是在 node.js 之前他们是怎么做到的?
【问题讨论】:
-
NodeJS 只是您可以选择的众多服务器端编程语言/框架之一。使用您的服务器可以支持的一个(尽管...AFAIK Node 在大多数平台上运行,所以不确定是什么阻止了您安装它,除非您指的是您购买的共享托管计划?)。它们都将支持 AJAX(即 XmlHttpRequest),并且许多都支持 WebSocket 连接(诚然,后者通常需要一些配置)。例如,PHP 和 ASP.NET 都肯定有 websocket 实现。有一个任何人都可以实现的 websocket 标准。
-
NodeJS 是 not a hard requirement 对于 WebSockets。
-
当然,您的另一个选择是迁移到支持您需要的服务器环境...通常最好在之前确定支持/环境要求设置服务器。
-
如果你使用 HTTP——这就是
XMLHttpRequest和它更现代的兄弟如 Fetch API 使用的——你首先使用的是面向流和带宽的 TCP 协议(如与延迟相反),最重要的是再次为 HTTP 支付延迟——其中请求和响应可能超过您的数据有效负载,甚至在您构建请求和解析响应正文之前就必须对其进行解析。根据您游戏的性质,您可能需要使用 WebSockets 或 WebRTC(如果您必须有 P2P)。否则,HTTP 可能就足够了。 -
"有 WebSocket 支持,只是我的托管计划上的任何配置方式都被阻止,所以将没有配置" ...如果已经支持,那么您可能不需要做很多配置。通过配置,我的意思是安装 websocket 组件并使套接字连接正常工作。如果托管公司已经支持它,那么您应该没有太多问题。
标签: javascript node.js websocket xmlhttprequest