Android 之WebSocket 通信

Android websocket详细使用方法 里面加入了断线重连、心跳机制、退出释放资源,废话不多直接开干 1.添加依赖 implementation "org.java-websocket:Java-WebSocket:1.5.1" 2、添加使用类 import android.util.Log; import org.java_websocket.client.WebSocketClient; import org.java_websocket.drafts.Draft_6455; import org.java_websocket.hands 阅读详情

最近在做使用三方im做一些业务的时候,领导觉得三方的im通信并不能很好的适应我们的需求。
所以决定抽时间,自己使用WebSocket实现一个长链接。
做之前肯定要逛一逛github,学习一下优秀的经验,不经意间就找到了 Java-WebSocket,秉着这不重复制造轮的理论,直接上手使用起来。

Gradle 使用
mavenCentral()
implementation 'org.java-websocket:Java-WebSocket:1.5.1'

创建WebSocketChatClient继承WebSocketClient

public class WebSocketChatClient extends WebSocketClient {

    public WebSocketChatClient(URI serverUri) {
        super(serverUri);
    }

    public WebSocketChatClient(URI serverUri, Draft draft) {
        super(serverUri, draft);
    }

    public WebSocketChatClient(URI serverUri, Map<String, String> httpHeaders) {
        super(serverUri, httpHeaders);
    }

    @Override
    public void onOpen(ServerHandshake handshakedata) {
        System.out.println("WebSocketChatClient Connected");

    }

    @Override
    public void onMessage(String message) {
        System.out.println("WebSocketChatClient got: " + message);

    }

    @Override
    public void onClose(int code, String reason, boolean remote) {
        System.out.println("WebSocketChatClient Disconnected");

    }

    @Override
    public void onError(Exception ex) {
        ex.printStackTrace();
        System.out.println("WebSocketChatClient onError");
    }
}

然后初始化WebSocketChatClient

var str: String? =
    "ws://robot-app.wondertemple.com:8058/4419a2e94b2b9cd2bde7f8103dfa5b25"
var chatClient: WebSocketChatClient? = null

chatClient = WebSocketChatClient(URI(str))
chatClient?.connect()

链接成功,后台返回

com.example.socketdemo I/System.out: WebSocketChatClient Connected
com.example.socketdemo I/System.out: WebSocketChatClient got: {"cmd":"connection","data":{"message":"ok"}}

断开连接

chatClient?.close()

重连

chatClient?.reconnect()

发送消息

chatClient?.send(JSONObject.toJSONString(msgBean))

至此,一个简单的im 基础功能就完成了,后边大家就可以慢慢扩展了

Java-WebSocket连接socket java链接socket   阅读详情

相关推荐

Android WebSocket长连接

1.在build.gradle中添加 implementation "org.java-websocket:Java-WebSocket:1.5.1" 2.在清单文件中加入网络请求权限 <uses-permission android:name="android.permission.INTERNET" />

weixin_58159075的博客 5081

安卓Java Web Socket简单使用

安卓Java Web Socket简单使用 android使用javaWebSocket实现跨设备设备通讯的方式之一。 demo地址:https://gitee.com/sixu_Java/java-web-socket 只要关注onOpen、onMessage、onClose、onError这四个方法,然后server端启动,client端通过server端ip与端口去连接。即可完成简单的连接demo。 而server端与client端的通讯关注onMessage。 注意:操作界面需要在UI线程,如

qq_41117613的博客 6855

java服务端与Android客户端使用 websocket 通信

最近因为项目需要所以得使用 websocket 来进行服务器与客户端的通信。使用java 来实现服务端,Android 实现客户端。 刚开始服务端使用 @ServerEndPoint 注解来实现 Websocket 服务端,但是 Android 使用的是autobahn 实现的客户端,所以一直连接不上,报错为:WebSockets protocol violation 。 后面我把服务端改...

qq_34999633的博客 4330

Android 集成websocket小结

1、GitHub地址 https://github.com/TooTallNate/Java-WebSocket implementation "org.java-websocket:Java-WebSocket:1.5.1" 2、项目新建module->im_websocket module->build.gradle apply plugin: 'com.android.library' android { compileSdkVersion rootProj..

SmallWalnutBG的博客 2313

Android中 使用 WebSocket 实现消息通信

心跳、发送请求都属于客户端主动发送请求,对于请求结果我们分为成功和失败以及超时,发送超时我们是收不到服务器任何回复的,所以我们需要在发送之后将发送放在超时任务队列中,如果请求成功将任务从超时队列中移除,超时从超时队列中获取任务重新请求。此处我们要做的处理是,如果收到连接失败或者断开连接的回调 需要重新连接,我们重新调用一次连接方法即可,并且如果超过三次重连失败,我们在业务中可以通过调用接口来获取数据,避免数据丢失,此处细节省略。Log.d(TAG, “onConnected: 连接成功”);

2401_87288903的博客 2058

Android中 使用 WebSocket 实现消息通信,【金九银十

前端字节跳动真题解析开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】花板技术停滞不前!**因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。[外链图片转存中…(img-9uKdabNi-1711468639356)][外链图片转存中…(img-WeQJr1RD-1711468639357)]

m0_60707660的博客 1324

Android 使用WebSocket通信

APP端实现 1.添加依赖 implementation "org.java-websocket:Java-WebSocket:1.5.1" 2.加入网络请求权限 <uses-permission android:name="android.permission.INTERNET" /> 3.创建客户端类并继承WebSocketClient,需要实现它的四个抽象方法和构造函数 import android.util.Log; import org.java_websocket.client

gdvfs12的博客 3167

WebSocket学习:在Android中实现实时通信

在本文中,我们将探讨如何在Android应用程序中使用WebSocket实现实时通信,并提供相应的源代码示例。在这个类中,我们将实现WebSocketClient类,并重写其相应的方法。通过以上步骤,我们就可以在Android应用程序中使用WebSocket实现实时通信了。现在,我们可以在Android应用程序中使用WebSocket客户端。方法中创建了WebSocket客户端实例,并连接到指定的WebSocket服务器。方法中,我们关闭了WebSocket连接。在上面的示例中,我们首先在。

ZrilKwargs的博客 262

springboot 通过websocket与 Android 通信

需求:Android做个轮播图功能,当后台上传了最新的轮播图后,Android立刻更新最新的图像信息后台用的springboot,和Android通信用的websocket,但之前做类似的功能,比如MQ、MQTT、firebase,基本都是人家后台搭好了我直接调用就行,这次需要自己搭,做个最简单的案例轮播图上传后,调用sendMessageToAndroid方法发消息给Android,这里没做主题消息处理,只有最简单的纯文本内容。

weixin_40562148的博客 357

若依开源框架(分离版)在人大金仓数据库下使用

对于甲方业务特殊要求,使用国产化数据库人大金仓,作为项目主要存储。这里以若依开源框架整合人大金仓为例,演示如何在真实项目中引入人大金仓。

🐱喵测实验室 5943

AWSIM模拟器 新增多相机

本文介绍了基于Unity6引擎对AWSIM自动驾驶模拟器的优化方案,主要针对多相机系统的扩展实现。作者通过修改EgoVehicle.cs和AutowareSimulationDemo.cs核心代码,将原单相机系统升级为5相机配置。关键技术点包括:1)使用List容器管理多个CameraSensor组件;2)完善相机初始化流程;3)配置5个相机UI显示窗口;4)修改ROS话题设置。优化后的系统可支持BEVFusion等多传感器融合算法的测试验证,为Autoware.universe 0.45.0及以上版本提供

W805698955的博客 831

Android 即时通信WebSocket和SocketIO的总结

       WebSocket部分:        首先应该先明确WebSocket是一个应用层协议,该协议是一种基于TCP连接上进行全双工通讯的协议(全双工通信允许发送数据和接收数据同时发生),因为有了WebSocket协议,使得客户端和服务器之间的数据实时交换变得更加简单,app客户端和服务器只需要完成一次握手(shake hand),两者之间就可以创建持久性的长连接,并进行双向数据传输。...

Crystal_xing的专栏 4918

博途的HMI(触摸屏)的应用

触摸屏(HMI):用于控制PLC,可认为是小型上位机(用于控制PLC的都可认为是上位机)上位机(PC Station):将触摸屏升级为电脑----工控机(工业控制的机器)用博途编写西门子的触摸屏和上位机。

王阿妹小天才的博客 2679

android websocket 服务器端,如何在android中使用websocket协议进行服务器通信

如何在android中使用websocket协议进行服务器通信发布时间:2021-01-20 16:44:36来源:亿速云阅读:132作者:Leah本篇文章给大家分享的是有关如何在android中使用websocket协议进行服务器通信,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。客户端代码:importcom.example.te...

weixin_32685145的博客 999

4.7W防削顶单声道D类音频功率放大器HT6872介绍

HT6872是一款低EMI,防削顶失真,单声道免滤波D类音频功率放大器。在6.5V电源,10%THD+N,4Ω负载条件下,输出4.71W功率,在各类音频终端应用中维持高效率并提供AB类放大器的性能。

weichen_78的博客 4700

9、傅里叶变换:连续时间与离散时间信号分析的核心工具

本文深入探讨了傅里叶变换在连续时间和离散时间信号分析中的核心作用,详细介绍了连续时间傅里叶变换(CTFT)和离散时间傅里叶变换(DTFT)的定义、性质及其应用。文章涵盖了傅里叶级数到傅里叶变换的推导过程、常见变换对、系统分析中的关键性质,并讨论了采样后频谱的周期延拓与混叠问题。此外,还展示了傅里叶变换在滤波器设计、通信系统调制解调等实际场景中的应用,最后展望了其在图像处理、生物医学等领域的广阔前景。

jump7的博客 68

Android利用websocket协议与服务器通信——Java-WebSocket框架的实现

一、什么是WebSocket WebSocket是一种在单个TCP连接上进行全双工通信的协议。它使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,客户端和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。 二、如何使用WebSocket android本身没有websocket的库,一般使用第三方框架实现,如Java-WebSocket、okhttp等。 三、Java-WebSocket框架的使用 GitHub地址:

weixin_42046829的博客 4531

5.17华为OD机试真题 新系统 - 输出二叉树后序遍历结果 (Java/Py/C/C++/Js/Go)

5.17华为OD机试真题 新系统 - 输出二叉树后序遍历结果 (Java/Py/C/C++/Js/Go)

算法大师! 519

探索实时通信:Android WebSocket 简单 Demo 项目推荐

探索实时通信:Android WebSocket 简单 Demo 项目推荐 【下载地址】Android端WebSocket简单Demo 本项目是一个简单的 Android WebSocket 示例,展示了如何在 Android 应用中使用 WebSocket 进行基本的通信。通过本项目,你可以学习到如何添加依赖和权限、创...

gitblog_09792的博客 821

Trae+雪球MCP,化身专业的股票分析师(玩转100个MCP系列第二弹)

大家好呀,我是程序员夏叶,深度AI编程使用者,专注于分享AI编程方面的使用技巧、经验以及前沿资讯,有兴趣的可以关注我的公众号,一起学习,共同进步。第二弹,使用Trae+雪球MCP,获取股票实时行情,分析股票走向等,写代码间隙看看股票价格,研究研究行情,哈哈。真的很不错呀,最关键的是,足够隐蔽,同事以为你在写代码,实际你在浏览股票行情,哈哈,感兴趣的可以试一下哦。说实话,沧州明珠这只股我算是砸手里了,不过还好买的不多,哈哈。

cpp加油站的专栏 518

C++软件异常分析概述

本文将详细讲述Windows系统中软件异常的分类以及常用的排查方法,给大家提供一个借鉴与参考。

dvlinker的技术专栏 4万+

Android利用websocket协议与服务器通信——OkHttp框架的实现

OkHttp WebSocket使用 github源码:https://github.com/square/okhttp 1.初始化okhttp,创建request,并开始连接websocket client = new OkHttpClient.Builder() .readTimeout(3, TimeUnit.SECONDS)//设置读取超时时间 .writeTimeout(3, TimeUnit.SECONDS)//设置写的超时时间 .connectT

weixin_42046829的博客 1928

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Android开发实战班 - 网络编程 - WebSocket 实时通信

什么是 WebSocketWebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。WebSocket 允许服务器主动向客户端推送数据,实现实时双向通信。WebSocket 的特点全双工通信: 服务器和客户端可以同时发送和接收数据。实时性: WebSocket 实现了真正的实时通信,适合实时数据传输。高效性: WebSocket 使用单个 TCP 连接,减少了 HTTP 请求的开销。支持跨域: WebSocket 支持跨域通信,可以在不同域名之间进行通信。

知道者 1898

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Android WebSocket通信:OkHttp WebSocket与自动重连完整指南

在现代Android应用开发中,实时通信变得越来越重要。**OkHttp WebSocket** 作为Square公司推出的强大网络库,为开发者提供了稳定可靠的实时通信解决方案。无论你是开发聊天应用、实时数据监控还是在线游戏,掌握WebSocket通信技术都是必不可少的技能。🚀 ## 什么是WebSocket通信? WebSocket是一种在单个TCP连接上进行全双工通信的协议,它允许服务器

gitblog_00014的博客 1131

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Android初学 使用WebSocket与服务器进行通信

只实现了基础的通信功能, 没有用到Service及Handle 参考资源: SpringBoot使用WebSocket(一) Android WebSocket长连接的实现 实现效果 服务端 核心代码如下 @ServerEndpoint("/test") @Component @Slf4j public class WebSocketController { /** * 存放所有在线的客户端 */ private static Map<String, Sess

sakura的博客 1144
上一篇: Android如何动态设置Shape?
下一篇: Apple M1 上使用Room数据库 构建失败
jhonjson
博客等级 码龄11年 220粉丝 195原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值