灯塔 graphql 订阅

Geh*_*med 1 php laravel graphql laravel-lighthouse

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

Alb*_*aff 5

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

subscription PostUpdated {
    postUpdated(id: 123) {
        title
    }
}
Run Code Online (Sandbox Code Playgroud)

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

{
  "data": {
    "postUpdated": null
  },
  "extensions": {
    "lighthouse_subscriptions": {
      "version": 1,
      "channels": {
        "PostUpdated": "private-lighthouse-wlAyAuW8aBlthctY2rkRGRlaaGq30Iqr-1564126310"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

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