PostGraphile 订阅 - “主题”指的是啥?
Posted
技术标签:
【中文标题】PostGraphile 订阅 - “主题”指的是啥?【英文标题】:PostGraphile subscriptions - what does "topic" refer to?PostGraphile 订阅 - “主题”指的是什么? 【发布时间】:2021-05-03 00:52:45 【问题描述】:我正在使用 PgPubsub,我正试图了解 listen
和 topic*:""
vis-a-vis 放在那里的内容。
例如,假设我有一个<PostList>
组件,它呈现<Post>
的列表,我想在创建或删除帖子时更新列表。
我不确定如何组织我的订阅,所以我正在监听 PostList 的更改。这是我的 GraphiQL 的屏幕截图:
【问题讨论】:
【参考方案1】:在pubsub(发布-订阅)中,消息被发布到一个“主题”,您可以订阅该主题以接收在那里发布的消息。
您似乎在 PostGraphile 中使用 "simple subscriptions" 功能,所以我会假设是这种情况来回答。
有了订阅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 Subscriptions documentation 中阅读更多相关信息。
【讨论】:
谢谢先生。是的,我正在使用简单的简单订阅,因为当我将其设置为 false 并启动应用程序时,订阅类型从我的架构中消失了,我在 GraphiQL 中得到了"Schema is not configured for subscriptions"
。老实说,我是一个全新的全栈开发人员,我什至不知道我是否需要 pubsub,因为我正在使用 Relay。当我添加或删除帖子时,我的 post
表更新正常,但现在我只是尝试实时更新 UI 而无需刷新页面。以上是关于PostGraphile 订阅 - “主题”指的是啥?的主要内容,如果未能解决你的问题,请参考以下文章
AWS 弹性 beantalk 上的 postgraphile 出现 408 超时错误
PostgreSQL / PostGraphile行权限不起作用