搜索
首页web前端css教程带有GraphQL的多人游戏TIC TAC TOE

带有GraphQL的多人游戏TIC TAC TOE

该教程展示了使用GraphQl构建多人游戏TIC-TAC-TOE游戏,展示了其前端开发的功能和效率。 GraphQL的强度在于它的能力使客户精确地指定其数据需求,从而产生优化,可预测的响应。

我们将将Hasura GraphQl引擎与自定义GraphQl Server用于后端,并与Apollo客户端进行前端反应(尽管任何框架都是适应性的)。这种方法结合了Hasura提供的数据库管理的易度性,并具有用于游戏逻辑的自定义服务器的灵活性。

GraphQl基本面:

GraphQl是一种API查询语言。关键功能包括:

  • 客户端指定的查询:客户只要求他们需要的数据,避免过度提取。例如,要获取用户的ID和名称:
询问 {
  用户{
    ID
    姓名
  }
}
  • 单端点,发布请求:简化API交互。
  • 结构化响应:根据查询可以预测响应结构。对于上述查询,成功的响应看起来像:
 {
  “数据”: {
    “用户”:{
      “ id”:“ auth:482919”,
      “名称”:“乔恩·杜”(Jon Doe)
    }
  }
}
  • 内省:客户可以查询服务器的支持查询。

为什么要为此游戏进行GraphQl?

GraphQl的精度最小化数据传输,从而导致更快,更有效的响应。内省可以通过覆盖和自动完成等功能来改善动态查询并改善开发人员体验(DX)。单个端点简化了API管理,并且对实时订阅的内置支持简化了多人游戏功能的创建。

关键GraphQL术语:

  • 查询:获取数据。
  • 突变:修改服务器上的数据。
  • 订阅:将客户端订阅到实时数据更新。
  • 查询变量:传递给查询的参数。

后端设置:

我们的后端利用Hasura GraphQL引擎(用于数据库交互)和自定义GraphQl Server(用于游戏逻辑)。我们将使用Postgres作为数据库。 Hasura在Postgres上提供了即时的实时GraphQl API,处理CRUD操作并提供Webhook触发器和远程模式支持。

设置后端的步骤包括:

  1. 部署hasura:在Heroku上部署Hasura GraphQl引擎的免费实例。
  2. 创建数据库表:通过Hasura控制台在Postgres中创建userboardmove表。定义这些表之间的关系以实现有效的查询。
  3. 自定义服务器:部署自定义GraphQl Server(在原始教程中提供)来处理游戏逻辑,例如移动验证和转向切换。该服务器需要Postgres连接字符串作为环境变量。
  4. 集成远程架构:将自定义服务器的URL添加到Hasura作为远程架构,以统一API端点。

前端开发(查询和突变):

虽然前端实现是框架 - 敏锐的,但这是基本的GraphQl查询和突变:

  • insert_user突变:插入新用户。
  • board订阅:订阅可用的游戏板。
  • insert_board突变:创建一个新的游戏板。
  • update_board突变:加入游戏板。
  • board_by_pk订阅:订阅特定游戏板上的更新。
  • make_move突变:在板上移动,对其进行验证并切换转弯。

使用Apollo客户端简化了前端GraphQl集成。

通过遵循以下步骤,您可以创建一个功能齐全的多人游戏TIC-TAC-TOE游戏,以利用GraphQl的功率和效率。

以上是带有GraphQL的多人游戏TIC TAC TOE的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
Indieweb和网络企业Indieweb和网络企业Apr 19, 2025 am 11:16 AM

Indieweb是一回事!他们将举行会议和一切。纽约客甚至在写这件事:

(开发人员)增长模型(开发人员)增长模型Apr 19, 2025 am 11:08 AM

我真的很喜欢Dennis Hambeukers的帖子“设计师的成长模式”。丹尼斯只是发明了这种模型,但它基于一些现有想法,这一切

闹鬼:Web组件的挂钩闹鬼:Web组件的挂钩Apr 19, 2025 am 11:06 AM

我只是和戴夫聊天,他告诉我关于鬼魂的聊天。它的钩子,但适用于本机Web组件!很酷。我认为这样的东西存在

每周平台新闻:活动时机,网络的Google Earth,不死会话cookie每周平台新闻:活动时机,网络的Google Earth,不死会话cookieApr 19, 2025 am 10:57 AM

在本周的新闻中,Wikipedia有助于识别三个慢单击处理程序,Google Earth登上了网络,CSS中的SVG属性获得了更多的支持,以及在僵尸cookie的情况下该怎么做。

纯CSS的多线截断纯CSS的多线截断Apr 19, 2025 am 10:50 AM

本文中的诀窍仍然非常整洁又聪明,但是现在有一种标准化的方法可以做到这一点,这可能是您最好的选择。

CSS动画库CSS动画库Apr 19, 2025 am 10:46 AM

有很多库希望帮助您在网络上进行动画操作。这些是真正帮助您使用语法或的图书馆

颜色输入:深入研究跨浏览器差异颜色输入:深入研究跨浏览器差异Apr 19, 2025 am 10:40 AM

在本文中,我们将查看内部元素内部的结构,浏览器不一致,为什么它们在某个浏览器中以某种方式看起来

将(伪)元素限制到其父元的边框框将(伪)元素限制到其父元的边框框Apr 19, 2025 am 10:39 AM

您是否曾经想确保(伪)元素在其父框架之外没有显示任何内容?如果您在想象什么

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。