在android studio 3.1.2中,我在gradle中的config下面添加:
Workbook_BeforeClose
并调用以下代码以连接websocket网址:
dependencies {
...
implementation 'io.crossbar.autobahn:autobahn-android:18.5.+'
}
观察者看起来像:
public void connect(String url) {
WebSocketConnection ws = new WebSocketConnection();
WebSocketObserver observer = new WebSocketObserver();
try {
ws.connect(url,observer);
} catch (WebSocketException e) {
e.printStackTrace();
}
}
当我使用echo测试服务器时:
private class WebSocketObserver implements IWebSocketConnectionHandler {
@Override
public void onConnect(ConnectionResponse response) {
Log.d(TAG, "WebSocket onConnect: " + response);
}
@Override
public void onOpen() {
Log.d(TAG, "WebSocket connection opened");
}
@Override
public void onClose(int code, String reason) {
Log.d(TAG, "WebSocket connection closed. Code: " + code + ". Reason: " + reason + ". State: "
+ reason);
}
@Override
public void onMessage(String payload) {
Log.d(TAG, "onMessage WSS->C: " + payload);
}
@Override
public void onMessage(byte[] payload, boolean isBinary) {
}
@Override
public void onPing() {
}
@Override
public void onPing(byte[] payload) {
}
@Override
public void onPong() {
}
@Override
public void onPong(byte[] payload) {
}
@Override
public void setConnection(WebSocketConnection connection) {
}
}
}
它工作正常。
但是当我使用下面的测试服务器时:
wss://echo.websocket.org
以下崩溃发生:
wss://apprtc-ws.webrtc.org:443/ws
我确定两个wss URL均有效,但不确定为什么第二个URL导致崩溃!