在本文中,我将学习如何构建基于事件的应用程序并在触发特定事件时发送网络推送通知。我们将在 Hasura GraphQL 引擎上设置数据库表、事件和计划触发器,并将 GraphQL 端点连接到前端应用程序以记录用户的股票价格偏好。
与粘在连续的数据流上以自己查找特定事件相比,在您选择的事件发生时收到通知的概念已经变得流行起来。人们更愿意在他们喜欢 国家电子邮件列表 的事件发生时收到相关的电子邮件/消息,而不是盯着屏幕等待该事件发生。基于事件的术语在软件领域也很常见。
如果您可以在手机上获取您最喜欢的股票的最新价格,那该有多棒?
在本文中,我们将使用 React、Apollo GraphQL 和 Hasura GraphQL 引擎构建一个Stocks Price Notifier应用程序。我们将从create-react-app样板代码开始该项目,并将构建所有内容。我们将学习如何在 Hasura 控制台上设置数据库表和事件。我们还将学习如何连接 Hasura 的事件以使用网络推送通知获取股票价格更新。
快速浏览一下我们将要构建的内容:
股票价格通知程序
我们走吧!
跳转后更多!继续往下看↓认识“TypeScript 50 节课”,这是我们闪亮的 TypeScript 新指南。通过详细的代码演练、实践示例和常见陷阱——所有内容都分解为简短、易于管理的课程。对于了解足够多JavaScript 的开发人员来说是危险的。
跳转到目录↬
这个项目是关于什么的概述
股票数据(包括high、low、open、close、volume等指标)将存储在 Hasura 支持的 Postgres 数据库中。用户将能够根据某些价值订阅特定股票,或者他可以选择每小时接收一次通知。一旦满足订阅条件,用户将收到网络推送通知。
这看起来像很多东西,而且显然会有一些关于我们将如何构建这些部分的悬而未决的问题。
以下是我们将如何通过四个步骤完成该项目的计划:

使用 NodeJs 脚本获取股票数据
我们将从使用一个简单的 NodeJs 脚本从股票 API 提供商之一 — Alpha Vantage获取股票数据开始。此脚本将以 5 分钟的间隔获取特定股票的数据。API 的响应包括最高价、最低价、开盘价、收盘价和成交量。然后,这些数据将被插入到与 Hasura 后端集成的 Postgres 数据库中。
设置 Hasura GraphQL 引擎
然后我们将在 Postgres 数据库上设置一些表来记录数据点。Hasura 自动为这些表生成 GraphQL 模式、查询和变更。
使用 React 和 Apollo Client 的前端下一步
是使用 Apollo 客户端和 Apollo Provider(Hasura 提供的 GraphQL 端点)集成 GraphQL 层。数据点将在前端显示为图表。我们还将构建订阅选项,并将在 GraphQL 层上触发相应的突变。
设置事件/预定触发器
Hasura 提供了一个优秀的触发器工具。我们将在股票数据表上添加事件和预定触发器。如果用户有兴趣在股票价格达到特定值(事件触发器)时收到通知,则会设置这些触发器。用户还可以选择每小时接收一次特定股票的通知预定触发。