在上个项目开始我们开始使用tcp异步通信机制来实现所需要的功能,使用异步的方式主要的好处能够不阻塞,以便能在接收数据的时候更加流畅,我们选用了netty异步通讯框架来实现这个功能,之前我写了一篇关于netty实现异步通讯长连接的文章,但是在使用中我发现,有的时候会莫名其妙的报连接断开的现象,而且代码逻辑也不是特别好,之后我在github上发现rxnetty这个库不错(主要是最近在学习rx……的使用,所以在使用netty的时候就想会不会有一个使用rxjava实现的netty框架呢?于是在github上发现真的有 哈哈哈);这个框架可以更根据设置读取数据的时间就可以自己尝试重连操作;本文中使用的代码完全是在上一篇netty实现长链接: http://www.jianshu.com/p/2dfecc719cd5 的基础上修改简化的,
|
|
使用rxnetty只需要简单的几句话就能解决netty tcp长连接的实现过程,由于没有handler所以使用一个方法再其他程序中使用能够更加的方便;还有就是在使用可以通过使Lambda 表达式来简化代码,使代码的可读性能够增加,还有就是在使用长链接的时候推荐使用rxAndroid,使用这个方法最主要的好处就是子线程可以很容易的将数据发送到主线程来更新界面;
关于Lambda 在android中的使用
主要是在android studio的project的build中
并且在使用的moudle中声明
以下关于导入rxnetty包出现问题的解决方案来自以为网友写的博客
把RxNetty的tcp包加入到依赖,直接这样编译会有两个问题,第一个问题是jar重复:
另一个问题是引用的netty包中META-INF/下的部分文件重复。
|
|
本文中还是使用了两个库文件一个是rxjava和fastjson