handle error using onError
This commit is contained in:
@@ -6,6 +6,7 @@ import com.github.nkzawa.engineio.parser.Packet;
|
|||||||
import com.github.nkzawa.engineio.parser.Parser;
|
import com.github.nkzawa.engineio.parser.Parser;
|
||||||
import com.github.nkzawa.parseqs.ParseQS;
|
import com.github.nkzawa.parseqs.ParseQS;
|
||||||
import com.github.nkzawa.thread.EventThread;
|
import com.github.nkzawa.thread.EventThread;
|
||||||
|
import com.squareup.okhttp.Headers;
|
||||||
import com.squareup.okhttp.OkHttpClient;
|
import com.squareup.okhttp.OkHttpClient;
|
||||||
import com.squareup.okhttp.Request;
|
import com.squareup.okhttp.Request;
|
||||||
import com.squareup.okhttp.Response;
|
import com.squareup.okhttp.Response;
|
||||||
@@ -59,8 +60,9 @@ public class WebSocket extends Transport {
|
|||||||
public void onOpen(com.squareup.okhttp.ws.WebSocket webSocket, Request request, Response response) throws IOException {
|
public void onOpen(com.squareup.okhttp.ws.WebSocket webSocket, Request request, Response response) throws IOException {
|
||||||
ws = webSocket;
|
ws = webSocket;
|
||||||
final Map<String, String> headers = new TreeMap<String, String>(String.CASE_INSENSITIVE_ORDER);
|
final Map<String, String> headers = new TreeMap<String, String>(String.CASE_INSENSITIVE_ORDER);
|
||||||
for (int i = 0, size = response.headers().size(); i < size; i++) {
|
Headers responseHeaders = response.headers();
|
||||||
headers.put(response.headers().name(i), response.headers().value(i));
|
for (int i = 0, size = responseHeaders.size(); i < size; i++) {
|
||||||
|
headers.put(responseHeaders.name(i), responseHeaders.value(i));
|
||||||
}
|
}
|
||||||
EventThread.exec(new Runnable() {
|
EventThread.exec(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
@@ -72,8 +74,8 @@ public class WebSocket extends Transport {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onMessage(BufferedSource payload, PayloadType type) throws IOException {
|
public void onMessage(BufferedSource payload, final PayloadType type) throws IOException {
|
||||||
Object data;
|
Object data = null;
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case TEXT:
|
case TEXT:
|
||||||
data = payload.readUtf8();
|
data = payload.readUtf8();
|
||||||
@@ -82,7 +84,12 @@ public class WebSocket extends Transport {
|
|||||||
data = payload.readByteArray();
|
data = payload.readByteArray();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw new IllegalStateException("Unknown payload type: " + type);
|
EventThread.exec(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
self.onError("Unknown payload type: " + type, new IllegalStateException());
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
payload.close();
|
payload.close();
|
||||||
final Object finalData = data;
|
final Object finalData = data;
|
||||||
@@ -143,7 +150,7 @@ public class WebSocket extends Transport {
|
|||||||
self.ws.sendMessage(BINARY, new Buffer().write((byte[]) packet));
|
self.ws.sendMessage(BINARY, new Buffer().write((byte[]) packet));
|
||||||
}
|
}
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
self.onError("websocket error", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -172,7 +179,7 @@ public class WebSocket extends Transport {
|
|||||||
try {
|
try {
|
||||||
this.ws.close(1000, "");
|
this.ws.close(1000, "");
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
onError("doClose error", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user