{"id":18565075,"url":"https://github.com/jenly1314/anetty","last_synced_at":"2026-03-07T20:04:42.533Z","repository":{"id":72501209,"uuid":"178542496","full_name":"jenly1314/ANetty","owner":"jenly1314","description":":envelope: ANetty 是基于Netty二次封装的Android链路通讯库，用以快速开发高性能，高可靠性的网络交互。在保证易于开发的同时还保证其应用的性能，稳定性和伸缩性。轻松实现长连接通讯。","archived":false,"fork":false,"pushed_at":"2024-06-20T10:42:36.000Z","size":16659,"stargazers_count":73,"open_issues_count":0,"forks_count":23,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-12-08T05:30:18.322Z","etag":null,"topics":["android","bio","bytebuf","chat","chat-room","client","connect","ftp","http","im","netty","netty-client","nio","serial-port","smtp","socket","tcp","udp"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jenly1314.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-03-30T10:12:05.000Z","updated_at":"2024-11-08T05:09:32.000Z","dependencies_parsed_at":"2023-11-18T14:56:30.315Z","dependency_job_id":"fd4809ad-7514-4ed6-b0c5-677d33227ac7","html_url":"https://github.com/jenly1314/ANetty","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenly1314%2FANetty","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenly1314%2FANetty/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenly1314%2FANetty/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenly1314%2FANetty/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jenly1314","download_url":"https://codeload.github.com/jenly1314/ANetty/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230113662,"owners_count":18175220,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","bio","bytebuf","chat","chat-room","client","connect","ftp","http","im","netty","netty-client","nio","serial-port","smtp","socket","tcp","udp"],"created_at":"2024-11-06T22:17:36.103Z","updated_at":"2026-03-07T20:04:37.512Z","avatar_url":"https://github.com/jenly1314.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ANetty\n\n![Image](app/src/main/ic_launcher-web.png)\n\n[![MavenCentral](https://img.shields.io/maven-central/v/com.github.jenly1314/anetty?logo=sonatype)](https://repo1.maven.org/maven2/com/github/jenly1314/ANetty)\n[![JitPack](https://img.shields.io/jitpack/v/github/jenly1314/ANetty?logo=jitpack)](https://jitpack.io/#jenly1314/ANetty)\n[![CI](https://img.shields.io/github/actions/workflow/status/jenly1314/ANetty/gradle.yml?logo=github)](https://github.com/jenly1314/ANetty/actions/workflows/gradle.yml)\n[![Download](https://img.shields.io/badge/download-APK-brightgreen?logo=github)](https://raw.githubusercontent.com/jenly1314/ANetty/master/app/release/app-release.apk)\n[![API](https://img.shields.io/badge/API-21%2B-brightgreen?logo=android)](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)\n[![License](https://img.shields.io/github/license/jenly1314/ANetty?logo=open-source-initiative)](https://opensource.org/licenses/apache-2-0)\n\n\nANetty for Android 是基于Netty二次封装的Android链路通讯库，用以快速开发高性能，高可靠性的网络交互。在保证易于开发的同时还保证其应用的性能，稳定性和伸缩性。\n\n\n## 效果展示\n![Image](GIF.gif)\n\n\u003e 你也可以直接下载 [演示App](https://raw.githubusercontent.com/jenly1314/ANetty/master/app/release/app-release.apk) 体验效果\n\n## 引入\n\n### Gradle:\n\n1. 在Project的 **build.gradle** 或 **setting.gradle** 中添加远程仓库\n\n    ```gradle\n    repositories {\n        //...\n        mavenCentral()\n    }\n    ```\n\n2. 在Module的 **build.gradle** 中添加依赖项\n   ```gradle\n   // ANetty\n   implementation 'com.github.jenly1314:anetty:1.1.0'\n\n   ```\n\n## 使用\n\n### 代码示例\n\n\u003e ANetty暂并不提供Netty服务端封装库，因为在真实的场景中，服务端一般都依赖项目对应的业务。为了方便演示ANetty客户端，这里提供了一个简易的[服务端demo](server)；直接以Java的形式直接在main方法中直接运行ANettyServer即可启动Netty服务。（此Demo主要是为了方便测试与ANetty的客户端进行通信）\n\nNetty服务端：\n```Java\n   // 初始化并启动服务\n   new ANettyServer().start(port);\n```\n\nNetty客户端：\n```Java\n    // 初始化Netty\n   Netty mNetty = new ANetty(new Netty.OnChannelHandler() {\n      @Override\n      public void onMessageReceived(ChannelHandlerContext ctx,String msg) {\n         // TODO 接收到的消息\n      }\n   \n     @Override\n     public void onExceptionCaught(ChannelHandlerContext ctx,Throwable e) {\n         // TODO 异常\n     }\n   }, true);\n   // 设置连接监听\n   mNetty.setOnConnectListener(new Netty.OnConnectListener() {\n      @Override\n      public void onSuccess() {\n         // TODO 连接成功\n      }\n      \n      @Override\n      public void onFailure(Throwable e) {\n         // TODO 连接失败\n      }\n   \n   });\n   // 设置发送消息监听\n   mNetty.setOnSendMessageListener(new Netty.OnSendMessageListener() {\n      @Override\n      public void onSendMessage(Object msg) {\n         // TODO 发送的消息\n      }\n      \n      @Override\n      public void onException(Throwable e) {\n         //TODO 异常\n      }\n   });\n\n   // 初始化后，建立连接\n   mNetty.connect(host, port);\n   \n   //---------------------\n   // ...\n   // 发送消息\n   mNetty.sendMessage(msg);\n   \n   //---------------------\n   // ...\n   // 断开连接\n   mNetty.disconnect();\n   \n   //---------------------\n   // ...\n   // 重连\n   mNetty.reconnect(delayMillis);\n   \n   //---------------------\n   // ...\n   // 关闭连接\n   mNetty.close();    \n\n```\n\n\u003e 如需测试；可以在Netty服务端启动后；然后使用Netty客户端输入对应的连接地址和端口，即可与服务端进行通信。（也可直接使用[演示App](https://raw.githubusercontent.com/jenly1314/ANetty/master/app/release/app-release.apk)进行测试。）\n\n更多使用详情，请查看[app](app)中的源码使用示例或直接查看 [API帮助文档](https://jitpack.io/com/github/jenly1314/ANetty/latest/javadoc/)\n\n## 相关推荐\n\n- [EasyChat](https://github.com/yetel/EasyChatAndroidClient) 一款即时通讯APP。\n- [ASocket](https://github.com/jenly1314/ASocket) 一个TCP/UDP协议的封装库，方便快速实现TCP的长连接与UDP的单播、组播、广播等相关通信。\n- [AWebSocket](https://github.com/jenly1314/AWebSocket) 基于okhttp封装的 WebSocket，简洁易用。\n\n## 版本日志\n\n#### v1.1.0：2023-11-18\n* 迁移发布至 MavenCentral\n* minSdk要求从 16+ 提升至 21+\n* compileSdk更新至33\n* 更新Gradle至8.0\n* 更新netty依赖至v4.1.101.Final\n* 修改Netty相关定义，对外提供更多可用的方法\n\n#### v1.0.3：2019-11-13 （之前发布的版本是在JCenter）\n* OnChannelHandler接口内方法新增ChannelHandlerContext参数\n\n#### v1.0.2：2019-10-30\n* 新增setOnSendMessageListener方法\n* 更新Netty依赖至4.1.43.Final\n\n#### v1.0.1：2019-9-26\n* 移除support依赖\n* 更新Netty依赖至4.1.42.Final\n\n#### v1.0.0：2019-3-30\n* ANetty初始版本\n\n---\n\n![footer](https://jenly1314.github.io/page/footer.svg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjenly1314%2Fanetty","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjenly1314%2Fanetty","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjenly1314%2Fanetty/lists"}