我需要在我的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。