该教程展示了使用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触发器和远程模式支持。
设置后端的步骤包括:
- 部署hasura:在Heroku上部署Hasura GraphQl引擎的免费实例。
-
创建数据库表:通过Hasura控制台在Postgres中创建
user
,board
和move
表。定义这些表之间的关系以实现有效的查询。 - 自定义服务器:部署自定义GraphQl Server(在原始教程中提供)来处理游戏逻辑,例如移动验证和转向切换。该服务器需要Postgres连接字符串作为环境变量。
- 集成远程架构:将自定义服务器的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中文网其他相关文章!

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


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Dreamweaver Mac版
视觉化网页开发工具

记事本++7.3.1
好用且免费的代码编辑器

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应用服务器集成。