PostGraphile 订阅 - "topic" 指的是什么?
PostGraphile subscriptions - what does "topic" refer to?
我正在使用 PgPubsub,我正在努力思考 listen
和 topic*:""
相对于放在那里的内容。
例如,假设我有一个呈现 <Post>
列表的 <PostList>
组件,我想在创建或删除 Post 时更新列表。
我不确定如何构建我的订阅,所以我正在监听 PostList 的变化。这是我的 GraphiQL 的屏幕截图:
在 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.
中阅读更多相关信息
我正在使用 PgPubsub,我正在努力思考 listen
和 topic*:""
相对于放在那里的内容。
例如,假设我有一个呈现 <Post>
列表的 <PostList>
组件,我想在创建或删除 Post 时更新列表。
我不确定如何构建我的订阅,所以我正在监听 PostList 的变化。这是我的 GraphiQL 的屏幕截图:
在 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.