graphql - PostGraphile 订阅 - “主题”指的是什么?
问题描述
我正在使用 PgPubsub,我正试图让我的头脑四处走动listen
,topic*:""
看看放在那里的东西。
例如,假设我有一个<PostList>
呈现列表的组件,<Post>
并且我想在创建或删除 Post 时更新列表。
我不确定如何构建我的订阅,所以我正在监听 PostList 的更改。这是我的 GraphiQL 的屏幕截图:
解决方案
在pubsub(发布-订阅)中,消息被发布到一个“主题”,您可以订阅该主题以接收在那里发布的消息。
您似乎正在使用 PostGraphile 中的“简单订阅”功能,所以我会假设是这种情况来回答。
使用您拥有的订阅listen(topic: "whatGoesHere?")
,您需要向postgraphile:whatGoesHere?
主题广播以触发订阅事件。您可以通过发出 SQL 语句来做到这一点NOTIFY "postgraphile:whatGoesHere?", '{"ok": true}';
。你可以这样做psql
:
$ psql your_database_here
[your_database_here] # NOTIFY "postgraphile:whatGoesHere?", '{"ok": true}';
NOTIFY
[your_database_here] #
假设您的 GraphQL 订阅正在运行,这应该会导致评估选择集并将结果发送到 GraphiQL。
您可能希望NOTIFY
从函数或触发器中触发此语句;您可以在PostGraphile 订阅文档中阅读更多相关信息。
推荐阅读
- excel - 创建用户窗体时Excel vba内存不足
- python - Azure yaml Pipeline 在脚本中隐藏密码
- object-detection - 目标检测的边界区域
- flutter - 在 Android Studio 中不断记录“D/MediaCodecInfo”,它是什么,以及如何禁用或修复它?
- xero-api - 在调用 getinvoices 时调用 auth、refresh 和 gettenants 后,xero api 因未经授权(401 或 403)而失败
- c++ - 具有默认行为的模板自定义点不执行任何操作
- mysql - 如何使用 WHERE 子句获得前 3 个平均值?
- android - 最初将屏幕方向更改为横向时,触发传感器方向,然后在 PORTRAIT 中加载
- python - 循环抛出两个列表,我想从每个列表中弹出
- android - Unity:错误AndroidVideoMedia,找不到曲目?