public class MyWebSocket {
private final String TAG = "MyWebSocket";
private OkHttpClient CLIENT ;
private WebSocket mWebSocket;
private static final MyWebSocket ourInstance = new MyWebSocket();
public static MyWebSocket getDefault() {
return ourInstance;
}
private MyWebSocket() {
CLIENT = new OkHttpClient.Builder()
.writeTimeout(1000,TimeUnit.SECONDS)
.readTimeout(1000, TimeUnit.SECONDS)
.connectTimeout(1000, TimeUnit.SECONDS)
.pingInterval(30, TimeUnit.SECONDS)
.retryOnConnectionFailure(true)
.build();
}
public void connect(String url){
if (mWebSocket != null) {
mWebSocket.cancel();
}
Request request = new Request.Builder()
.url(url)
.build();
mWebSocket = CLIENT.newWebSocket(request,new SocketListener());
}
public void sendMessage(String message){
mWebSocket.send(message);
}
public void sendMessage(byte... data){
ByteString bs = ByteString.of(data);
mWebSocket.send(bs);
}
public void close(int code, String reason){
mWebSocket.close(code,reason);
}
class SocketListener extends WebSocketListener{
@Override
public void onOpen(WebSocket webSocket, Response response) {
super.onOpen(webSocket, response);
LogUtils.e(TAG,"onOpen response="+response);
}
@Override
public void onMessage(WebSocket webSocket, String text) {
super.onMessage(webSocket, text);
try{
LogUtils.e(TAG,"onMessage text="+text);
}catch (Exception e){
e.printStackTrace();
}
}
@Override
public void onMessage(WebSocket webSocket, ByteString bytes) {
super.onMessage(webSocket, bytes);
LogUtils.e(TAG,"onMessage bytes="+bytes.toString());
}
@Override
public void onClosing(WebSocket webSocket, int code, String reason) {
super.onClosing(webSocket, code, reason);
LogUtils.e(TAG,"onClosing code="+code);
}
@Override
public void onClosed(WebSocket webSocket, int code, String reason) {
super.onClosed(webSocket, code, reason);
LogUtils.e(TAG,"onClosed code="+code);
}
@Override
public void onFailure(WebSocket webSocket, Throwable t, Response response) {
super.onFailure(webSocket, t, response);
t.printStackTrace();
LogUtils.e(TAG,"onFailure t="+t.getMessage());
}
}
}
WebSocket Android 客户端
最新推荐文章于 2025-03-08 13:31:09 发布