Android apollo 订阅不起作用?
Android apollo subscriptions not working?
我需要在我的 Android 应用程序中集成 subscription
。 subscription
在 graphiql
中的 localhost
上运行良好。我已经在 Heroku 上部署了我的后端。我使用的是 apollo-server
而不是 hasura
。
我的 subscriptions
不适用于 Heroku
给出的 url 但它在 localhost
上工作正常。 Queries
和 mutations
适用于 localhost
和 Heroku
url。
所以我正在尝试从我的 Android 客户端访问我的订阅。我将基地 url 保留为我的本地主机。我已经为 localhost
正确配置了我的 Android 模拟器,queries
和 mutations
部分适用于我的 Android 客户端,但我的订阅部分不工作。
我已经通过添加此
为 subscription
配置了我的 Apollo
客户端
.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 替换为 Heroku url 进行订阅时,我收到以下错误。
我面临的这两个问题是否相互关联?
所以我的代码没有问题。问题出在我使用的 Heroku
免费层。我尝试用 Hasura's
订阅 https://hasura.io/learn/graphql/android/subscriptions/1-subscription/ 替换我的订阅并且它有效。
我需要在我的 Android 应用程序中集成 subscription
。 subscription
在 graphiql
中的 localhost
上运行良好。我已经在 Heroku 上部署了我的后端。我使用的是 apollo-server
而不是 hasura
。
我的 subscriptions
不适用于 Heroku
给出的 url 但它在 localhost
上工作正常。 Queries
和 mutations
适用于 localhost
和 Heroku
url。
所以我正在尝试从我的 Android 客户端访问我的订阅。我将基地 url 保留为我的本地主机。我已经为 localhost
正确配置了我的 Android 模拟器,queries
和 mutations
部分适用于我的 Android 客户端,但我的订阅部分不工作。
我已经通过添加此
为subscription
配置了我的 Apollo
客户端
.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 替换为 Heroku url 进行订阅时,我收到以下错误。
我面临的这两个问题是否相互关联?
所以我的代码没有问题。问题出在我使用的 Heroku
免费层。我尝试用 Hasura's
订阅 https://hasura.io/learn/graphql/android/subscriptions/1-subscription/ 替换我的订阅并且它有效。