packagecom.wlf.ws;importcom.alibaba.fastjson.JSONObject;importcom.wlf.entity.WSResponse;importlombok.extern.slf4j.Slf4j;importokhttp3.Response;importokhttp3.WebSocket;importokhttp3.WebSocketListener;importokio.ByteString;importjava.io.IOException;
@Slf4jpublic class SubTitleWS extendsWebSocketListener {/*** websocket连接建立后来到这个方法
*
*@paramwebSocket
*@paramresponse*/@Overridepublic voidonOpen(WebSocket webSocket, Response response) {super.onOpen(webSocket, response);//打印连接建立后的响应
try{
log.info(response.body().string());
}catch(IOException e) {
log.error("call onOpen failed, error :{}", e.getMessage());
}
}
@Overridepublic voidonMessage(WebSocket webSocket, String text) {super.onMessage(webSocket, text);
log.info("receive=>" +text);//处理返回数据
WSResponse response =(WSResponse) JSONObject.parse(text);if (response != null) {if (!"200".equals(response.getCode())) {
log.error("code=> :{}, error=> :{}", response.getCode(), response.getMessage());return;
}
}
}
@Overridepublic voidonMessage(WebSocket webSocket, ByteString bytes) {super.onMessage(webSocket, bytes);
}
@Overridepublic void onClosing(WebSocket webSocket, intcode, String reason) {super.onClosing(webSocket, code, reason);
log.info("socket closing.");
}
@Overridepublic void onClosed(WebSocket webSocket, intcode, String reason) {super.onClosed(webSocket, code, reason);
log.info("socket closed.");
}
@Overridepublic voidonFailure(WebSocket webSocket, Throwable t, Response response) {super.onFailure(webSocket, t, response);if (response == null) {
log.error("onFailure, response is null.");return;
}try{
log.error("onFailure, code: {}, errmsg: {}", response.code(), response.body().string());
}catch(IOException e) {
log.warn("onFailure failed, error: {}", e.getMessage());
}
}
}