Ошибка ошибки подписки WSError(тип: Starscream.ErrorType.upgradeError, сообщение: \"Недопустимое обновление HTTP \", код: 400)?
Мне нужно интегрировать subscription
в моем приложении для iOS. Вsubscription
отлично работает на localhost
в graphiql
. Я развернул серверную часть наHeroku
. Я используюapollo-server
и нет hasura
. Мойsubscriptions
не работают для URL-адреса, указанного Heroku, но он отлично работает на localhost
. Queries
а также mutations
отлично работают для обоих localhost
а также Heroku
URL. Итак, я пытаюсь получить доступ к своемуsubscription
из моего клиента iOS. Я сохранил базовый URL в качестве локального хоста. Часть запросов и мутаций работает для моего клиента iOS, но мойsubscription
часть не работает.
Я настроил свой клиент Apollo для подписки, добавив этот
let httpNetworkTransport = HTTPNetworkTransport(url: URL(string: "http://localhost:5000")!)
httpNetworkTransport.delegate = self
let webSocketTransport = WebSocketTransport(request: URLRequest(url: URL(string: "http://localhost:5000")!))
let splitNetworkTransport = SplitNetworkTransport(
httpNetworkTransport: httpNetworkTransport,
webSocketNetworkTransport: webSocketTransport
)
return ApolloClient(networkTransport: splitNetworkTransport)
Я тоже пробовал заменить http
с ws
следующее
let webSocketTransport = WebSocketTransport(request: URLRequest(url: URL(string: "ws://localhost:5000")!))
Код подписки следующий
subscription = Network.shared.apollo.subscribe(subscription: GetHealthConsultationSubscriptionSubscription()){
[weak self] result in
guard let self = self else {
return
}
switch result {
case .success(let result):
debugPrint(result.data?.healthConsultation.chiefComplaint)
case .failure(let error):
debugPrint(" Subscription Failure Error \(error)")
}
}
Но я получаю сообщение об ошибке от моего клиента iOS следующим образом
" Subscription Failure Error WSError(type: Starscream.ErrorType.upgradeError, message: \"Invalid HTTP upgrade\", code: 400)"
Также когда я использую Graphiql
для моей подписки и заменить localhost
с Heroku
URL моей подписки, я получаю следующую ошибку.
1 ответ
Так что с моим ios Code
. Проблема заключалась в бесплатном уровнеHeroku
Я использую. Я попытался заменить свойsubscription
с Hasura's Subscription
https://hasura.io/learn/graphql/ios/subscriptions/1-subscription/
и это работает.