【问题标题】:PostGraphile subscriptions - what does "topic" refer to?PostGraphile 订阅 - “主题”指的是什么?
【发布时间】:2021-05-03 00:52:45
【问题描述】:

我正在使用 PgPubsub,我正试图了解 listentopic*:"" vis-a-vis 放在那里的内容。

例如,假设我有一个<PostList> 组件,它呈现<Post> 的列表,我想在创建或删除帖子时更新列表。

我不确定如何组织我的订阅,所以我正在监听 PostList 的更改。这是我的 GraphiQL 的屏幕截图:

【问题讨论】:

    标签: graphql relay postgraphile


    【解决方案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 而无需刷新页面。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-27
    • 1970-01-01
    • 1970-01-01
    • 2020-09-20
    • 1970-01-01
    • 1970-01-01
    • 2018-06-17
    相关资源
    最近更新 更多