OKHttp之WebSocket的使用

WebSocket协议是一种建立在TCP连接基础上的全双工通信的协议。应用于即时通信等场景。

全双工通信:客户端和服务端可以同时进行双向通信。

添加gradle依赖:

compile'com.squareup.okhttp3:okhttp:3.6.0'

代码如下:

private String WEBSOCKETPATH="wss://xxx.xx.xx";

public WebSocket socket=null;

//创建WebSocket链接

OkHttpClient client =newOkHttpClient.Builder()

    .retryOnConnectionFailure(true)//允许失败重试

    .connectTimeout(8,TimeUnit.SECONDS)

    .readTimeout(5,TimeUnit.SECONDS)

    .writeTimeout(5,TimeUnit.SECONDS)

    .build();

Request request =newRequest.Builder().url(WEBSOCKETPATH).build();

client.newWebSocket(request, new WebSocketListener() {

    @Override

    public void onOpen(WebSocket webSocket,Response response) {

            socket=webSocket;

    }

@Override

public void onMessage(WebSocket webSocket,String text) {

    runOnUiThread(newRunnable() {

            @Override

            public void run() {

            }

    });

}

@Override

public void onMessage(WebSocket webSocket,ByteString bytes) {

}

@Override

public void onClosing(WebSocket webSocket, intcode,String reason) {

    webSocket.close(1000, null);

}

@Override

public void onClosed(WebSocket webSocket, intcode,String reason) {

    super.onClosed(webSocket,code,reason);

}

@Override

public void onFailure(WebSocket webSocket,Throwable t,Response response) {

    if(t instanceof SocketTimeoutException){//连接超时

        Log.i("erro",t.getMessage());

    }else if(t instanceof UnknownHostException){//服务器主机未找到

        Log.i("erro",t.getMessage());

    }else{//其他错误

        t.printStackTrace();

    }

    webSocket.close(1000, null);

}

});

client.dispatcher().executorService().shutdown();

更多:

http://www.open-open.com/lib/view/open1476778263175.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,924评论 18 139
  • 前言RxJava和Retrofit也火了一段时间了,不过最近一直在学习ReactNative和Node相关的姿势,...
    AFinalStone阅读 561评论 0 0
  • Welcome to websocket-sharp! websocket-sharp supports: RFC...
    mtian999阅读 9,984评论 0 1
  • 注:只包含标准包中的操作符,用于个人学习及备忘参考博客:http://blog.csdn.net/maplejaw...
    小白要超神阅读 2,230评论 2 8
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,765评论 18 399