我目前正在使用Lighthouse作为laravel的graphql服务器。我已经研究了他们网站上的订阅文档(https://lighthouse-php.com/master/subscriptions/getting-started.html),并将适当的推送程序凭据添加到.env文件中。
当尝试通过graphql-playground UI进行订阅时,出现以下错误:
订阅:
subscription {
orgUserCreated {
org
}
}
错误:
{
"error": "Could not connect to websocket endpoint ws://localhost:8000/graphql. Please check if the endpoint url is correct."
}
所有变异和查询均应正常工作。
我已经为laravel-graphql-playground laravel覆盖了index.blade.php文件,并且可以向该文件添加“ subscriptionEndpoint”变量,但是尚不清楚该变量应包含什么。
<script type="text/javascript">
window.addEventListener('load', function (event) {
const loadingWrapper = document.getElementById('loading-wrapper');
loadingWrapper.classList.add('fadeOut');
const root = document.getElementById('root');
root.classList.add('playgroundIn');
GraphQLPlayground.init(root, {
endpoint: "{{url(config('graphql-playground.endpoint'))}}",
subscriptionEndpoint: "?"
})
})
</script>
自从我通过推送程序进行连接以来,有人知道“ subscriptionEndpoint”变量中应该包含什么吗?
答案 0 :(得分:1)
Pusher Channels的订阅终结点如下(用“ you-cluster”代替您的Channels应用程序所在的群集):
ws://ws-[your-cluster].pusherapp.com
在端口80
wss://ws-[your-cluster].pusherapp.com
在端口443
您可以在下面看到更多信息:
https://pusher.com/docs/channels/miscellaneous/clusters#what-clusters-exist-
答案 1 :(得分:0)
为了将来参考,我必须使用以下内容:
wss://ws-[CLUSTER].pusher.com:443/app/[APP_KEY]?protocol=5
ws://ws-[CLUSTER].pusher.com:80/app/[APP_KEY]?protocol=5
[CLUSTER]可以在推动器上找到,我的名字是“ eu”
[APP_KEY]不是应用ID,而是公共密钥