Мне нужно интегрировать subscription
в свое приложение для Android. subscription
отлично работает на localhost
в graphiql
. Я развернул свой бэкенд на Heroku. Я использую apollo-server
, а не hasura
. Мой subscriptions
не работает для URL-адреса, указанного Heroku
, но отлично работает на localhost
. Queries
и mutations
прекрасно работают как для localhost
, так и для Heroku
URL. Итак, я пытаюсь получить доступ к своей подписке из своего клиента Android. Я сохранил базовый URL-адрес в качестве своего локального хоста. Я правильно настроил свой эмулятор Android для localhost
, и часть queries
и mutations
работает для моего клиента Android, но моя часть подписки не работает.
Я настроил свой клиент Apollo
для subscription
, добавив это
.subscriptionTransportFactory(WebSocketSubscriptionTransport.Factory(baseUrl,okHttpClient))
Мой код подписки выглядит следующим образом
val healthConsultationSubscriptionList = GetHealthConsultationSubscription.builder().build()
apolloClient.subscribe(healthConsultationSubscriptionList).execute(object :
ApolloSubscriptionCall.Callback<GetHealthConsultationSubscription.Data> {
override fun onFailure(e: ApolloException) {
Log.i("datafailure","${e.message} ${e.localizedMessage} ${e.cause}" )
}
override fun onResponse(response: Response<GetHealthConsultationSubscription.Data>) {
Log.i("datais", response.data()?.healthConsultation()?.chiefComplaint().toString() )
}
override fun onConnected() {
Log.i("dataconnected","Connected")
}
override fun onTerminated() {
Log.i("dataterminated","Terminated")
}
override fun onCompleted() {
Log.i("datacompleted","Completed")
}
})
Но я продолжаю получать сообщение об ошибке Subscription failed Subscription failed java.net.ProtocolException: Expected HTTP 101 response but was '400 Bad Request'
Также, когда я использую Graphiql для своей подписки и заменяю localhost URL-адресом Heroku для своей подписки, я получаю следующую ошибку.
Эти две проблемы, с которыми я сталкиваюсь, связаны друг с другом?