# 网络钩子

### 什么是网络钩子？[​](https://docs.immutable.com/docs/zkEVM/products/blockchain-data/webhooks#what-are-webhooks) <a href="#what-are-webhooks" id="what-are-webhooks"></a>

Webhooks 是网络应用程序之间进行实时通信的一种方法。它们是在特定事件发生时从一个系统发送到另一个系统的自动消息或通知。从本质上讲，网络钩子允许一个应用程序向另一个应用程序通报事件，从而触发即时操作或响应。

Webhooks 比连续轮询更受欢迎，原因如下：

1. **实时更新**：网络钩子提供实时更新。当事件发生时，网络钩子会立即触发接收应用程序中的操作。这与轮询不同，轮询是在预定义的时间间隔内重复检查更新。
2. **效率**：轮询的效率很低，尤其是在没有更新的情况下。即使没有新数据，它也需要定期请求 API。相比之下，网络钩子是事件驱动的，这意味着它们只在事件发生时发送数据，从而减少了不必要的流量和服务器负载。
3. **减少延迟**：网络钩子将延迟降到最低。由于 Webhooks 实时发送更新，因此您 可以在最新数据可用时立即获取。而采用轮询方式时，您 可能会因轮询频率不同而出现延迟。
4. **简单**：设置 webhook 需要对源应用程序进行配置，以便向指定的端点发送数据。而轮询则需要编写和维护代码，以定期查询 API，因此更为复杂。

总之，Web3 游戏中的网络钩子为实时通信和数据同步提供了一种机制，使游戏体验更具活力和吸引力，同时也提高了基于区块链的游戏的运营效率。

### 网络钩子可以用来做什么？[​](https://docs.immutable.com/docs/zkEVM/products/blockchain-data/webhooks#what-can-webhooks-be-used-for) <a href="#what-can-webhooks-be-used-for" id="what-can-webhooks-be-used-for"></a>

在Web3 游戏中，网络钩子可用于各种目的，以增强游戏体验并简化操作。常见的使用案例如下：

1. **实时游戏事件**：每当合作伙伴请求的链上资产相关事件发生时，网络钩子就会成为向玩家、游戏服务器或其他应用程序发送实时通知的强大工具。例如，如果某些事件取决于资产的铸币、转移、烧毁或其元数据 的更新；网络钩子是合作伙伴应用程序在这些事件发生时收到警报的有效方式。
2. **交易市场 更新**：网络钩子可让第三方市场了解在多个平台上列出的游戏内资产的状态。当物品在其他地方上市或出售时，它们会收到即时更新，确保交易商和收藏者的库存管理准确无误。
3. **分析和度量**：Webhooks 可将游戏相关数据发送到分析平台，使游戏开发人员能够跟踪玩家行为、识别趋势，并根据数据做出改进游戏的决策。
4. **同步数据库**：通过 Webhooks，第三方可以保存GMLayer区块链数据 API 数据库的本地副本。当发生改变资产、代币或集合状态的事件时，外部数据库可以通过收到通知来映射GMLayer 的记录。

### 活动订阅[​](https://docs.immutable.com/docs/zkEVM/products/blockchain-data/webhooks#event-subscriptions) <a href="#event-subscriptions" id="event-subscriptions"></a>

可通过单个 Webhook 连接请求以下事件：

| 活动组          | 活动类型                                                                                                                                                                                      | 说明                                                                                                                                                                                            |
| ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 活动           | `imtbl_zkevm_activity_mint`; `imtbl_zkevm_activity_burn`; `imtbl_zkevm_activity_transfer`; `imtbl_zkevm_activity_sale`; `imtbl_zkevm_activity_deposit`; `imtbl_zkevm_activity_withdrawal` | 该事件提供了GMLayer'zkEVM 区块链上的铸币 (NFT (非同质化通证))、转账 (NFT (非同质化通证))、烧币 (NFT (非同质化通证))、交易 (NFT (非同质化通证))、取款 (ERC20) 和存款 (ERC20) 的详细信息。这些事件非常适合跟踪NFT (非同质化通证) 所有权变更，以及监控区块链活动以触发应用程序更新。这些事件类型中不包含元数据 。 |
| 收藏品          | `imtbl_zkevm_collection_updated`                                                                                                                                                          | 当创建或修改一个集合时，该事件就会发出信号。这些事件的有效载荷中包含集合的元数据 。                                                                                                                                                    |
| NFT (非同质化通证) | `imtbl_zkevm_nft_updated`                                                                                                                                                                 | 该事件是NFT (非同质化通证) 创建或修改时的信号。它包括 `token_id` 至 `metadata_id` 映射，将元数据 堆栈链接到每个NFT (非同质化通证) 。当与 `metadata_updated` 通过该系统，可以将资产映射到各自的元数据 ，全面了解GMLayer生态系统中的 NFT 及其相关元数据 。                            |
| 元数据          | `imtbl_zkevm_metadata_updated`                                                                                                                                                            | 该事件提供元数据 堆栈属性的详细信息，每个堆栈由一个唯一的 `metadata_id`.创建新的元数据 堆栈以及通过元数据 Refresh 服务更新现有堆栈时都会触发该事件。                                                                                                       |
| 代币           | `imtbl_zkevm_token_updated`                                                                                                                                                               | 当GMLayer 的 zkEVM 平台上部署了新的 ERC20 令牌时，该事件就会发出信号。                                                                                                                                                |
| 订单           | `imtbl_zkevm_order_updated`                                                                                                                                                               | 当第三方交易市场 上出现新订单（列表）时，该事件就会发出信号。订单通过GMLayer 的中央订单簿集中处理。                                                                                                                                        |
| 贸易           | `imtbl_zkevm_trade_created`                                                                                                                                                               | 当GMLayerGlobalOrderbook 上发生交易时，该事件会发出信号。交易详情（包括额外费用）会显示出来。                                                                                                                                    |
