ANetty Save

:envelope: ANetty 是基于Netty二次封装的Android链路通讯库,用以快速开发高性能,高可靠性的网络交互。在保证易于开发的同时还保证其应用的性能,稳定性和伸缩性。轻松实现长连接通讯。

Project README

ANetty

Image

Download MavenCentral JitPack CI CircleCI API License

ANetty for Android 是基于Netty二次封装的Android链路通讯库,用以快速开发高性能,高可靠性的网络交互。在保证易于开发的同时还保证其应用的性能,稳定性和伸缩性。

Gif 展示

Image

你也可以直接下载 演示App 体验效果

引入

Gradle:

  1. 在Project的 build.gradlesetting.gradle 中添加远程仓库

    repositories {
        //...
        mavenCentral()
    }
    
  2. 在Module的 build.gradle 里面添加引入依赖项

    // ANetty
    implementation 'com.github.jenly1314:anetty:1.1.0'
    
    

使用

代码示例

ANetty暂并不提供Netty服务端封装库,因为在真实的场景中,服务端一般都依赖项目对应的业务。为了方便演示ANetty客户端,这里提供了一个简易的服务端demo;直接以Java的形式直接在main方法中直接运行ANettyServer即可启动Netty服务。(此Demo主要是为了方便测试与ANetty的客户端进行通信)

Netty服务端:

   // 初始化并启动服务
   new ANettyServer().start(port);

Netty客户端:

    // 初始化Netty
   Netty mNetty = new ANetty(new Netty.OnChannelHandler() {
      @Override
      public void onMessageReceived(ChannelHandlerContext ctx,String msg) {
         // TODO 接收到的消息
      }
   
     @Override
     public void onExceptionCaught(ChannelHandlerContext ctx,Throwable e) {
         // TODO 异常
     }
   }, true);
   // 设置连接监听
   mNetty.setOnConnectListener(new Netty.OnConnectListener() {
      @Override
      public void onSuccess() {
         // TODO 连接成功
      }
      
      @Override
      public void onFailure(Throwable e) {
         // TODO 连接失败
      }
   
   });
   // 设置发送消息监听
   mNetty.setOnSendMessageListener(new Netty.OnSendMessageListener() {
      @Override
      public void onSendMessage(Object msg) {
         // TODO 发送的消息
      }
      
      @Override
      public void onException(Throwable e) {
         //TODO 异常
      }
   });

   // 初始化后,建立连接
   mNetty.connect(host, port);
   
   //---------------------
   // ...
   // 发送消息
   mNetty.sendMessage(msg);
   
   //---------------------
   // ...
   // 断开连接
   mNetty.disconnect();
   
   //---------------------
   // ...
   // 重连
   mNetty.reconnect(delayMillis);
   
   //---------------------
   // ...
   // 关闭连接
   mNetty.close();    

如需测试;可以在Netty服务端启动后;然后使用Netty客户端输入对应的连接地址和端口,即可与服务端进行通信。(也可直接使用演示App进行测试。)

更多使用详情,请查看app中的源码使用示例或直接查看 API帮助文档

相关推荐

EasyChat 一款即时通讯APP。

ASocket 一个TCP/UDP协议的封装库,方便快速实现TCP的长连接与UDP的单播、组播、广播等相关通信。

AWebSocket 基于okhttp封装的 WebSocket,简洁易用。

版本记录

v1.1.0:2023-11-18

  • 迁移发布至 MavenCentral
  • minSdk要求从 16+ 提升至 21+
  • compileSdk更新至33
  • 更新Gradle至8.0
  • 更新netty依赖至v4.1.101.Final
  • 修改Netty相关定义,对外提供更多可用的方法

v1.0.3:2019-11-13 (之前发布的版本是在JCenter)

  • OnChannelHandler接口内方法新增ChannelHandlerContext参数

v1.0.2:2019-10-30

  • 新增setOnSendMessageListener方法
  • 更新Netty依赖至4.1.43.Final

v1.0.1:2019-9-26

  • 移除support依赖
  • 更新Netty依赖至4.1.42.Final

v1.0.0:2019-3-30

  • ANetty初始版本

赞赏

如果您喜欢ANetty,或感觉ANetty帮助到了您,可以点右上角“Star”支持一下,您的支持就是我的动力,谢谢 :smiley:

您也可以扫描下面的二维码,请作者喝杯咖啡 :coffee:

关于我

我的博客 GitHub Gitee CSDN 博客园
Jenly's Blog jenly1314 jenly1314 jenly121 jenly

联系我

微信公众号 Gmail邮箱 QQ邮箱 QQ群 QQ群
Jenly666 jenly1314 jenly1314 20867961 64020761
Open Source Agenda is not affiliated with "ANetty" Project. README Source: jenly1314/ANetty
Stars
65
Open Issues
3
Last Commit
3 months ago
Repository
License

Open Source Agenda Badge

Open Source Agenda Rating