由于项目的需要,先说一下项目的背景,现在流行物联网和社区o2o,本身也是在视频对讲设备,第一个项目的时候,大部分的通讯都是用采用mqtt 来进行通讯,后来由于框架的变动以及底层通讯人员的减少,以及所有客户端都采用android 设备之间采用p2p的通讯方式。具体实现:
1.设备端与服务端进行通信(socket方式)。
2.设备端的心跳机制保持(socket方式)。
3.设备端与设备端进行socket直接通讯。
4.android 设备做服务器进行转发(socket)。
5.小区中也有大量的设备是嵌入式的。
因此在项目中几乎是采用socket通讯。第一版本的时候,由另外的同事设计采用java 原生的socket进行通信,效果不是特别好。新改版的时候已经把原有的socket 用nio的socketchannle来代替。但必须要维护线程池,效率也不是特别高。另外还是关注通讯框架的稳定没有办法专注业务开发,另外也要用socket实现server端。因此优先想到采用半成品的框架和开源成熟框架,在此框架上面进行修改或者进行二次开发来满足项目需求。
然后在csdn 的官网上面看mina相关文章。因此,决定先了解mina设计能否满足需求。直接引用官方“Apache Mina是一个能够帮助用户开发高性能和高伸缩性网络应用程序的框架。它通过Java nio技术基于TCP/IP和UDP/IP协议提供了抽象的、事件驱动的、异步的API。mina 又称NIO 框架库