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

这篇具有很好参考价值的文章主要介绍了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都有对应的框架。

android开发使用OkHttp自带的WebSocket实现IM功能,移动端,Android,android,okhttp文章来源地址https://www.toymoban.com/news/detail-718189.html

到了这里,关于android开发使用OkHttp自带的WebSocket实现IM功能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用Kepserver 自带 DataLogger 功能 实现工控数据转储关系型数据库

    本文以 Mysql数据库为例,介绍使用 kepserver 的datalogger 功能转储数据到 mysql 第一步:下载安装 Mysql ODBC 数据库驱动 前往 官网下载ODBC驱动 https://downloads.MySQL.com/archives/c-ODBC/ 建议下载 msi 格式的安装文件   下载完成后,直接安装。 如果安装过程报这个错,那就下载个 vc_redist 

    2024年02月02日
    浏览(24)
  • 使用WebSocket实现聊天功能

    使用WebSocket实现一对一的聊天功能与未读消息功能 会话表 字段名 字段类型 长度 注释 conversation_id int 11 会话ID create_time datetime 创建时间 conversation_type int 1 会话类型 消息表 字段名 字段类型 长度 注释 message_id int 11 消息ID conversation_id int 11 会话ID sender_id int 11 发送者ID receiver

    2024年02月11日
    浏览(30)
  • WebSocket(三) -- 使用websocket+stomp实现群聊功能

    SpringBoot+websocket的实现其实不难,你可以使用原生的实现,也就是websocket本身的OnOpen、OnClosed等等这样的注解来实现,以及对WebSocketHandler的实现,类似于netty的那种使用方式,而且原生的还提供了对websocket的监听,服务端能更好的控制及统计(即上文实现的方式)。 但是,真

    2023年04月08日
    浏览(29)
  • 环信IM Android端实现华为推送详细步骤

    首先我们要参照华为的官网去完成 ,以下两个配置都是华为文档为我们提供的 1.https://developer.huawei.com/consumer/cn/doc/HMSCore-Guides/android-config-agc-0000001050170137#section19884105518498 2.https://developer.huawei.com/consumer/cn/doc/HMSCore-Guides/android-integrating-sdk-0000001050040084 3.在环信上传华为的配置信

    2024年02月21日
    浏览(27)
  • thinkphp websocket 开发实时聊天系统的用户群组与订阅功能实现 (一)

    PHP开发实时聊天系统的用户群组与订阅功能实现 在当今社交互联网时代,实时聊天系统已经成为人们日常交流的重要工具。为了提供更好的用户体验,我们需要实现用户群组与订阅功能,使得用户能够方便地创建和加入群组,并且能够订阅感兴趣的内容。 本篇文章将介绍如

    2024年02月07日
    浏览(33)
  • 使用Spring WebSocket实现实时通信功能

    🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页 ——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文并茂🦖生动形象🐅简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍专栏》 🐾 学会IDEA常用操作,工作效率翻倍~💐 🌊 《100天精通Golang(基础

    2024年02月09日
    浏览(28)
  • 如何使用Java Websocket实现实时数据监控功能?

    随着互联网应用的不断发展,实时数据监控功能成为了许多应用的必备功能之一。本文将介绍如何使用Java WebSocket实现实时数据监控功能,并提供具体的代码示例。 :Java WebSocket、实时数据监控、代码示例 一、什么是WebSocket? WebSocket是一种网络协议,可以在实现了We

    2024年02月03日
    浏览(29)
  • Android中 使用 WebSocket 实现消息通信

    private String action; /** 请求体 */ private RequestChild req; /** 请求次数 */ private transient int reqCount; /** 超时的时间 */ private transient int timeOut; public Request() { } public Request(String action, int reqCount, int timeOut, RequestChild req) { this.action = action; this.req = req; this.reqCount = reqCount; this.timeOut = timeOut; }

    2024年04月08日
    浏览(30)
  • Android 使用okhttp监控网络数据

    这里使用Okhttp写了一个demo来监听网络请求过程中的一系列数据,包括当前网络类型、请求体、响应体大小,url,请求方式,当然还有本次核心获取域名解析时长,建立连接时长,保持连接时长,请求总时长这些数据。 一次网络请求经历了哪些过程 通过域名访问的方式来请求

    2024年02月11日
    浏览(34)
  • uniapp使用uni自带websocket进行即时通讯

    最近再办一个uniapp做的即时通讯,把其中思路记载一下。 技术栈采用uniapp+uview+vue2进行开发。 下面的从uniapp官网截图的Api  uni.connectSocket() :这个方法可以让我们创建一个webSocket的连接,里面包含几个参数,url是写ws的连接地址,没有的话肯定是连接不上服务器,其他的没用

    2024年02月01日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包