Laravel-GraphQl-детская площадка не может подключиться к веб-сокету в пользовательском интерфейсе при использовании подписки
В настоящее время я использую Lighthouse в качестве сервера graphql для laravel. Я работал с документацией по подписке ( https://lighthouse-php.com/master/subscriptions/getting-started.html) на их сайте, а также добавил соответствующие учетные данные в файл.env.
При попытке подписаться с помощью графического интерфейса детской площадки я получаю следующую ошибку:
подписка:
subscription {
orgUserCreated {
org
}
}
ошибка:
{
"error": "Could not connect to websocket endpoint ws://localhost:8000/graphql. Please check if the endpoint url is correct."
}
Все мутации и запросы работают как надо.
Я переопределил файл index.blade.php для laravel laravel-graphql-playstation и могу добавить в этот файл переменную "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", так как я подключаюсь через pusher?
1 ответ
Для справки в будущем мне пришлось использовать следующее:
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] не идентификатор приложения, а открытый ключ
Конечные точки подписки для Pusher Channels следующие (вместо "you-cluster" вместо кластера, в котором находится приложение Channels):
ws://ws-[your-cluster].pusherapp.com
на порт 80
wss://ws-[your-cluster].pusherapp.com
по порту 443
Вы можете увидеть больше информации ниже: