1

谁能告诉我如何使用 lighthouse graphql 订阅,我按照这里https://lighthouse-php.com/3.1/extensions/subscriptions.html的说明完成了所有步骤,但是当移动团队(android 和 ios)尝试使用它时,它要求他们输入 websocket 端点,所以我如何使用 graphql lighthouse 订阅制作这个 websocket,我一般都知道 laravel websocket,但是如何将这个 websockets 与 graphql lighthouse 订阅连接?

4

2 回答 2

5

Lighthouse 订阅默认通过Pusher服务发送。当您运行以下查询时,Lighthouse 将注册订阅服务器端。

subscription PostUpdated {
    postUpdated(id: 123) {
        title
    }
}

该查询将返回一个 Pusher-channel(参见下面的示例)。您刚刚创建的订阅中的任何事件都将发送到此频道。您的客户端实现必须能够订阅推送消息。如果您使用的是 Apollo 或 Relay modern,您可以查看 Lighthouse-docs 中的片段。

{
  "data": {
    "postUpdated": null
  },
  "extensions": {
    "lighthouse_subscriptions": {
      "version": 1,
      "channels": {
        "PostUpdated": "private-lighthouse-wlAyAuW8aBlthctY2rkRGRlaaGq30Iqr-1564126310"
      }
    }
  }
}

每次 ID 为 123 的帖子发生更改时,您应该会通过 Pusher 收到一条消息,其中包含查询的数据。请注意,您必须使用@broadcast指令或手动触发订阅,有关更多信息,请参阅触发订阅

于 2019-07-26T07:42:26.533 回答
0

您需要使用 4.18 版本,其余与文档相同

于 2021-05-02T02:00:54.080 回答