//okhttp
implementation(“com.squareup.okhttp3:okhttp:4.9.0”)
private WebSocketListener socketListener = new WebSocketListener() { //回调监听
@Override
public void onClosed(@NotNull WebSocket webSocket, int code, @NotNull String reason) {
Log.e(TAG, "connect onClosed");
}
@Override
public void onFailure(@NotNull WebSocket webSocket, @NotNull Throwable t, @Nullable Response response) {
Log.e(TAG, "connect onFailure " + t.toString());
}
@Override
public void onMessage(@NotNull WebSocket webSocket, @NotNull String text) {
Log.e(TAG, "connect onMessage String : " + text);
}
@Override
public void onMessage(@NotNull WebSocket webSocket, @NotNull ByteString bytes) {
Log.e(TAG, "connect onMessage ByteString");
}
@Override
public void onOpen(@NotNull WebSocket webSocket, @NotNull Response response) {
Log.e(TAG, "connect onMessage onOpen");
mWebSocket = webSocket;
}
};
@Override
public void connect() { //建立连接
String wsUrl = "ws://xxx.xxx.xxx"
Log.e(TAG, "connect : " + wsUrl);
if(TextUtils.isEmpty(wsUrl)) {
throw new RuntimeException("Wc Connection url is empty");
}
OkHttpClient mClient = new OkHttpClient.Builder()
.pingInterval(5, TimeUnit.SECONDS)
.build();
Request request = new Request.Builder()
.url(wsUrl)
.build();
mClient.newWebSocket(request, socketListener);
}
@Override
public boolean send(String msg) { //发送数据
if(mWebSocket == null) return false;
boolean send = mWebSocket.send(msg);
return send;
}