Android apollo 订阅不起作用?

Android apollo subscriptions not working?

我需要在我的 Android 应用程序中集成 subscriptionsubscriptiongraphiql 中的 localhost 上运行良好。我已经在 Heroku 上部署了我的后端。我使用的是 apollo-server 而不是 hasura。 我的 subscriptions 不适用于 Heroku 给出的 url 但它在 localhost 上工作正常。 Queriesmutations 适用于 localhostHeroku url。 所以我正在尝试从我的 Android 客户端访问我的订阅。我将基地 url 保留为我的本地主机。我已经为 localhost 正确配置了我的 Android 模拟器,queriesmutations 部分适用于我的 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/ 替换我的订阅并且它有效。