帶有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觸發器和遠程模式支持。
設置後端的步驟包括:
- 部署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中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

您是否曾經在項目上需要一個倒計時計時器?對於這樣的東西,可以自然訪問插件,但實際上更多

在元素個數不固定的情況下如何通過CSS選擇第一個指定類名的子元素在處理HTML結構時,常常會遇到元素個數不�...

關於Flex佈局中紫色斜線區域的疑問在使用Flex佈局時,你可能會遇到一些令人困惑的現象,比如在開發者工具(d...

格子呢是一塊圖案布,通常與蘇格蘭有關,尤其是他們時尚的蘇格蘭語。在Tartanify.com上,我們收集了5,000多個格子呢
