带有Android“订阅失败”的Apollo(GraphQL)

时间:2019-10-22 09:19:51

标签: graphql apollo apollo-client graphql-subscriptions

我需要在我的android项目中使用Apollo来监听服务器更新。所以我使用订阅。但是当我尝试连接时,我在java.net.UnknownHostException: Unable to resolve host "api.myserver.com": No address associated with hostname中得到了onFailure()。当我尝试在终端上ping此主机或在浏览器中打开它时,它可以正常工作。这是我的代码:

val okHttpClient = OkHttpClient.Builder().build()

val apolloClient = ApolloClient.builder()
            .serverUrl("http://api.myserver.com/graphql")
            .okHttpClient(okHttpClient)
            .subscriptionTransportFactory(
                WebSocketSubscriptionTransport.Factory(
                    "ws://api.myserver.com/graphql",
                    okHttpClient
                )
            )
            .build()

var query: GetStatisticSubscription
var subscription: ApolloSubscriptionCall<GetStatisticSubscription.Data>?

query = GetStatisticSubscription.builder().build()
subscription = apolloClient.subscribe(query)

subscription?.execute(object :
       ApolloSubscriptionCall.Callback<GetStatisticSubscription.Data> {
            override fun onFailure(e: ApolloException) {
                Log.d("Online Users", e.localizedMessage)
            }

            override fun onResponse(response: Response<GetStatisticSubscription.Data>) {
                Log.d("Subs", response.data().toString())
            }

            override fun onConnected() {
                Log.d("Online Users", "Connected to WS")
            }

            override fun onTerminated() {
                Log.d("Online Users", "Dis-connected from WS")
            }

            override fun onCompleted() {
            }
        })

我的服务器通过http协议使用websocket。

0 个答案:

没有答案