本文共 1759 字,大约阅读时间需要 5 分钟。
### 前言
上节我们已经讲过了`mina`实现`tcp长连接`的客户端,大家感兴趣的话可以参看以下文章:
[MINA实现TCP长连接(一)——客户端实现](https://www.jianshu.com/p/883c1e181d1c)
这节就让我们来了解下`tcp长连接`服务端的实现吧。
今天涉及内容:
1. mina官网及实现服务端需要的jar包
2. mina服务端的几个类
3. TmServerManager在主函数中的使用
4. 效果图和项目结构图
先来波效果图
![效果图.gif](/contentImages/image/20200628/pdbwLHLgnM2GetFjl1u.gif)
#### 一.mina官网及实现服务端需要的jar包
`mina`是一个通讯长连接框架,其官网如下:
[mina官网](http://mina.apache.org/)
利用`mina`实现`tcp长连接服务端`需要以下`jar`包:
```
mina-core-2.0.16.jar
slf4j-api-1.7.21.jar
slf4j-jdk14-1.7.21.jar
```
下载地址:[mina_tcp服务端需要jar包](https://download.csdn.net/download/Burn_yourself/12543194)
大家将以上jar下载下来,然后导入到自己的项目中。
由于是`android`开发,这里,我将在`androidstudio`中新建一个主函数,用来模拟服务端接收与反馈客户端消息。
#### 二.mina服务端的几个类
为实现`mina服务端`,这里我封装了几个类,以下讲解者几个类的主要作用:
- TmServerHandler:处理`mina客户端`的数据接收与反馈的实际类
- TmServerManager:`mina服务端`实际操作对象,含通讯的连接及设置参数方法
#### 三. TmServerManager在主函数中的使用
在主函数中,你可以利用`TmServerManager`这样启动一个`mina`服务端:
```
public class TestJava {
public static void main(String[] args) {
TmServerManager tmServerManager = new TmServerManager();
tmServerManager.setPort(9124)
.setCharsetName("UTF-8")//设置字符编码集,若不设置则默认 UTF-8
.setReadBufferSize(2048)//设置接收缓存区大小,不设置的话默认为 2048
.setIdleTime(10)//设置服务回到空闲状态时间间隔,不设置则默认10秒
.setHbDelayTime(10)//设置接收心跳时间间隔(单位秒),若不设置则默认10秒(心跳开启生效)
//通讯应答
.setOnTmsHandlerListener(new TmServerHandler.OnTmsHandlerListener() {
@Override
public String messageHandler(IoSession session, Object message) {
System.out.println("======我是收到消息====message="+message.toString());
if("abc".equals(message.toString())){
//服务端做出应答
return "我是服务端的亚瑟";
}
return null;
}
}).start();//启动服务
}
}
```
#### 四. 效果图和项目结构图
![效果图.gif](/contentImages/image/20200628/pdbwLHLgnM2GetFjl1u.gif)
项目结构图如下:
![image.png](/contentImages/image/20200628/0aTckW9UXt0bFPDcYCL.png)
ok,今天的内容就介绍到这里了,谢谢大家。
转载地址:http://wqlyo.baihongyu.com/