EasySocket
EasySocket的初衷是希望通过对传输数据的处理使得socket编程更加简单、方便,传统的socket框架客户端发出一个请求信息,然后服务器返回一个应答信息,但是我们无法识别这个应答信息是对应哪个请求的,而EasySocket可以将每一个请求信息和应答信息实现一一对接,从而在socket层面实现了请求回调的功能。
EasySocket特点:
1、采用链式调用一键发送数据,根据自己的需求配置参数,简单易用,灵活性高
2、EasySocket分为简单使用和高级使用,简单使用是实现socket的普通功能,包括TCP的连接和断开、数据的发送和接收、心跳机制等等,高级使用实现了socket请求的回调功能和智能心跳机制
3、消息结构使用(包头+包体)的协议,其中包体存储要发送的数据实体,而包头则存储包体的数据长度,这种结构方式方便于数据的解析,解决了TCP通信中断包、粘包等问题;
4、智能的心跳包保活机制,自动发送和接收心跳包,实时检测socket连接状态,断开自动重连机制;
5、Socket层面的数据传输回调功能,使得每一个请求信息和应答信息实现无缝对接。
一、EasySocket的Android Studio配置
所需权限
uses-permission android:name="android.permission.INTERNET"
uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"
Gradle配置
1、在根目录的build.gradle文件中添加配置
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
2、Module的build.gradle文件中添加依赖配置
dependencies {
implementation 'com.github.jiusetian:EasySocket:{visionCode}'
}
二、EasySocket的简单配置
一般在项目的Application中对EasySocket进行全局化配置,下面是一个最简单的配置
/**
* 初始化EasySocket
*/
private void initEasySocket() {
//socket配置为默认值
EasySocketOptions options = new EasySocketOptions.Builder()
.build();
//初始化EasySocket
EasySocket.getInstance()
.ip("192.168.4.52") //IP地址
.port(9999) //端口
.options(options) //连接的配置
.buildConnection(); //创建一个socket连接
}
Socket的相关参数都使用了默认值,主要设置了IP和端口,这种配置是不具备回调功能和智能心跳的,但也满足了socket的基本需求,来看看框架的简单使用
首先 定义一个socket行为的监听器,如下
/**
* socket行为监听
*/
private ISocketActionListener socketActionListener =