com.ning.http.client.AsyncHttpClient
次のようにWebソケット接続を開くために使用しています。
AsyncHttpClient client = new AsyncHttpClient();
try {
client.prepareGet(url)
.execute(new WebSocketUpgradeHandler.Builder()
.addWebSocketListener(new WebSocketListener() {
@Override
public void onOpen(WebSocket webSocket) {
Log.d(TAG, "opened");
}
@Override
public void onClose(WebSocket webSocket) {
Log.d(TAG, "closed");
}
@Override
public void onError(Throwable throwable) {
Log.d(TAG, "error");
}
}).build());
} catch (IOException e) {
e.printStackTrace();
}
これは、github ドキュメントhttps://github.com/AsyncHttpClient/async-http-clientで概説されています。
ただしonError
、例外を除いて毎回呼び出されていることがandroid.os.NetworkOnMainThreadException
わかります。
どうしてこれなの?クライアントが動作できる別のスレッドまたは AsyncTask のインスタンスが本当に必要ですか?