android开发使用OkHttp自带的WebSocket实现IM功能

目录

一、背景

二、在项目中添加依赖包

三、框架调用

1、配置OkHttpClient

 2、调用Url,构建WebSocket请求

3、建立连接

4、使用WebSocket对象发送消息


一、背景

    android app开发经常会有IM需求,很多新手不晓得如何入手,难点在于通讯不中断。其实android发展到今天,很多技术都很完善,有很多类似框架可以实现。例如有:okhttp自带的websocket框架、easysocket等等。本文主要讨论的是okhttp自带的websocket框架。

二、在项目中添加依赖包

implementation 'com.squareup.okhttp3:mockwebserver:3.8.1'

三、框架调用

1、配置OkHttpClient

     websocket断线重连配置pingInterval即可,实现非常之方便。第一个参数为数字,第二个为单位一般设置秒(s)。

pingInterval(HEART_BEAT_RATE, TimeUnit.SECONDS)//设置心跳

OkHttpClient mClient = new OkHttpClient.Builder()
        .readTimeout(3, TimeUnit.SECONDS)//设置读取超时时间
        .writeTimeout(3, TimeUnit.SECONDS)//设置写的超时时间
        .connectTimeout(3, TimeUnit.SECONDS)//设置连接超时时间
        .pingInterval(HEART_BEAT_RATE, TimeUnit.SECONDS)//设置心跳
        .build();

 2、调用Url,构建WebSocket请求

//websocket地址
String url = "ws://xxxxx"

//创建请求对象
Request request = new Request
                        .Builder()
                        .get()
                        .url(url)
                        .build();

3、建立连接

   方法说明

  • onOpen(),连接成功
  • onMessage(String text),收到字符串类型的消息
  • onMessage(ByteString bytes),收到字节数组类型消息
  • onClosed(),连接关闭
  • onFailure(),连接失败
//开始连接
WebSocket websocket = mClient.newWebSocket(request, new WebSocketListener() {
    @Override
    public void onOpen(WebSocket webSocket, Response response) {
        super.onOpen(webSocket, response);
        //连接成功...
    }

    @Override
    public void onMessage(WebSocket webSocket, String text) {
        super.onMessage(webSocket, text);
        //收到消息
    }

    @Override
    public void onMessage(WebSocket webSocket, ByteString bytes) {
        super.onMessage(webSocket, bytes);
        //收到消息
    }

    @Override
    public void onClosed(WebSocket webSocket, int code, String reason) {
        super.onClosed(webSocket, code, reason);
        //连接关闭...
    }

    @Override
    public void onFailure(WebSocket webSocket, Throwable throwable, Response response) {
        super.onFailure(webSocket, throwable, response);
        //连接失败...
    }
});

4、使用WebSocket对象发送消息

JSONObject jsonObject = new JSONObject();
            jsonObject.put("xxxxxx", xxxxx);

//发送消息            
websocket.send(jsonObject.toString());

最后推荐一个android 开发ui框架XUI - Android 原生 UI 框架很多简单的ui都有对应的框架。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用OkHttp3实现WebSocket的步骤如下: 首先,我们需要导入OkHttp的依赖库。可以通过在项目的build.gradle文件的dependencies块中添加以下代码来实现implementation 'com.squareup.okhttp3:okhttp:3.14.0' 接下来,我们在代码中创建一个OkHttpClient实例,并使用它来建立WebSocket连接。例如: OkHttpClient client = new OkHttpClient(); // WebSocket连接地址 String url = "ws://example.com/socket"; // 创建WebSocket请求 Request request = new Request.Builder().url(url).build(); // 建立WebSocket连接 WebSocket webSocket = client.newWebSocket(request, new WebSocketListener() { @Override public void onOpen(WebSocket webSocket, Response response) { super.onOpen(webSocket, response); // 连接已经建立 Log.d("WebSocket", "连接已经建立"); } @Override public void onMessage(WebSocket webSocket, String text) { super.onMessage(webSocket, text); // 接收到消息 Log.d("WebSocket", "接收到消息:" + text); } @Override public void onClosed(WebSocket webSocket, int code, String reason) { super.onClosed(webSocket, code, reason); // 连接已关闭 Log.d("WebSocket", "连接已关闭"); } @Override public void onFailure(WebSocket webSocket, Throwable t, Response response) { super.onFailure(webSocket, t, response); // 连接失败 Log.d("WebSocket", "连接失败"); } }); 通过上述代码,我们使用OkHttpClient创建了一个WebSocket连接,建立连接时会调用onOpen方法,接收到消息时会调用onMessage方法,连接关闭时会调用onClosed方法,连接失败时会调用onFailure方法。 我们还可以通过WebSocket对象发送消息,例如: webSocket.send("Hello, WebSocket!"); 当我们不再需要WebSocket连接时,可以通过调用webSocket.close()方法来关闭连接。 总结来说,使用OkHttp3实现WebSocket非常方便,只需要创建OkHttpClient对象,根据WebSocket的生命周期处理不同的回调方法即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值