WebSocket Android 客户端

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());
        }
    }




}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值