博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java mina 长连接_MINA实现TCP长连接(二)——服务端实现
阅读量:6502 次
发布时间:2019-06-24

本文共 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/

你可能感兴趣的文章
matplotlib 雷达图2
查看>>
sql 查出一张表中重复的所有记录数据
查看>>
Spinner使用二
查看>>
SLF4J - 借助SLF4J, 统一适配所有日志实现为logback日志实现的实践
查看>>
log4j 转载
查看>>
[js高手之路] dom常用API【appendChild,insertBefore,removeChild,replaceChild,cloneNode】详解与应用...
查看>>
IIS并发连接数和数据库连接池
查看>>
软件工程作业 - word count
查看>>
JavaWeb使用Session防止表单重复提交
查看>>
JAVA-JSP之include指令
查看>>
Ubuntu中update-grub2与update-grub的区别
查看>>
nginx反向代理
查看>>
ASP.NET Core的身份认证框架IdentityServer4(6)- 开始
查看>>
service
查看>>
shell与if相关参数
查看>>
用fail2ban阻止ssh暴力破解root密码
查看>>
Mysql Order By 字符串排序,mysql 字符串order by
查看>>
Python cos() 函数
查看>>
system.web下的HttpModules节点和system.webServer下的modules节点的配置区别
查看>>
Database Setup
查看>>