谁能告诉我如何使用lighthouse graphql订阅,我按照此处https://lighthouse-php.com/3.1/extensions/subscriptions.html的说明进行了所有步骤,但是当移动团队(android和ios)尝试使用它时,它要求他们输入websocket终结点,因此如何我可以制作带有graphql lighthouse订阅的Websocket吗?我通常了解laravel websocket,但是如何将这个websocket与graphql灯塔的订阅联系起来?
答案 0 :(得分:2)
默认情况下,Lighthouse订阅是通过Pusher-服务发送的。当您运行以下查询时,Lighthouse将随后注册订阅服务器端。
subscription PostUpdated {
postUpdated(id: 123) {
title
}
}
查询将返回一个Pusher通道(请参见下面的示例)。您刚刚创建的订阅中的所有事件都将发送到该频道。您的客户端实现必须能够订阅Pusher消息。如果您使用的是Apollo或Relay modern,则可以查看Lighthouse-docs中的代码片段。
{
"data": {
"postUpdated": null
},
"extensions": {
"lighthouse_subscriptions": {
"version": 1,
"channels": {
"PostUpdated": "private-lighthouse-wlAyAuW8aBlthctY2rkRGRlaaGq30Iqr-1564126310"
}
}
}
}
每次ID为123的帖子发生更改时,您都应该通过Pusher收到一条消息,其中包含查询的数据。请注意,您必须使用@broadcast
指令或手动触发订阅,有关更多信息,请参见trigger subscriptions。
答案 1 :(得分:0)
您需要使用4.18版本,其余同文档