源码地址:https://github.com/jiusetian/EasySocket
EasySocket是一个轻量级的Android端Socket框架,初衷是希望使Socket编程变得更加简单、快捷,该框架可快速实现客户端和服务端之间的TCP长连接通讯,兼容于各种消息协议,非常灵活自由,框架的优势是可以兼容所有的消息协议和快速实现Socket的消息回调功能
EasySocket主要特点:
-
采用链式调用一键发送和接收数据,根据自己的需求配置参数,简单易用,灵活性高
-
EasySocket实现了包括TCP的连接和断开、数据的发送和接收、心跳保活、重连机制等功能
-
消息协议自己定义,只需要实现简单的接口即可使用,所以兼容性很强,框架已经帮你实现Socket编程的各种功能,同时也解决了Socket编程的各种问题,比如分包、粘包、重连等等
-
EasySocket只需简单的配置即可实现心跳检测功能
-
方便实现和管理多个Socket连接
-
EasySocket可以实现消息的回调功能,传统的Socket通信客户端是无法识别服务端的应答消息是对应哪个请求消息的,该框架可以实现Socket请求消息和应答消息的一一对应
一、EasySocket的Android Studio配置
所需权限
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
关于混淆
-keep class com.easysocket.entity.basemsg.** { *; }
-keep class com.easysocket.entity.OriginReadData
Gradle配置
1、在根目录的build.gradle文件中添加配置
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
2、Module的build.gradle文件中添加依赖配置
dependencies {
implementation 'com.github.jiusetian:EasySocket:最新版本号'
}
Server端设置
测试项目,可以用项目中自带的服务端模块socket_server,使用它要先设置socket_server为Application,步骤如下
1.在Android studio 应用选择中打开Edit Configurations,如下
2.点击+号选择Application
3、填好几个信息,如下图,其中server是应用名称,可以随意取,Main class是socket_server中MainClass类的路径名,Working directory 是MainClass所在的包路径,然后是对应的module,选择socket_server确认即可
4.运行server,如下图所示,然后服务端代码就已经跑起来了,把项目配置中的IP地址改为自己的本地IP就可以测试了
二、EasySocket的基本使用
1、创建Socket连接
一般在项目的Application中对EasySocket进行全局化配置,下面是一个最简单的配置
/**
* 初始化EasySocket
*/
private void initEasySocket() {
// socket配置
EasySocketOptions options = new EasySocketOptions.Builder()
// 主机地址,请填写自己的IP地址,以getString的方式是为了隐藏作者自己的IP地址
.setSo