文档章节

通讯框架:talent-aio实例

孟飞阳
 孟飞阳
发布于 2017/03/18 08:18
字数 703
阅读 369
收藏 18

简 介

talent-aio是基于java aio实现的即时通讯框架,源于作者另一个久经考验的talent-nio框架,但在易用性、性能及代码可读性方面又远远超越了talent-nio。官网地址:http://www.talent-tan.com:9292,上面有大家期待已久的入门文档。

应用场景

IM、实时监控、RPC、推送服务等实时通讯类型的场景

特 点

  • 极简洁清晰易懂的API: 没有生涩难懂的新概念,只需花上30分钟学习helloworld就能很好地掌握并实现一个性能极好的即时通讯应用

  • 极震撼的性能

  • 可同时支持10万级tcp长连接,彻底甩开业界当年的c10K烦恼

  • 每秒可收发283万条消息(约80M)(windows7、i7、8g、群聊场景)

  • 极亲民的内置功能

  • 框架层面帮你检测心跳(tcp server)、发送心跳(tcp client)

  • 框架层面支持自动重连(可设置重连间隔时间和重连次数)

  • 框架层面支持同步消息(消息发送后,等到响应消息再往下执行)

  • 框架层面支持绑定userid(用于用户关联)、绑定groupid(用于群聊)

  • 内置各项统计功能----接受过多少连接、关闭过多少连接、已发送的消息数、已接收的消息数、当前是多少正常连接、当前多少断开的连接等。

Helloword实践

  • 服务端和客户端的消息协议比较简单,消息头为4个字节,用以表示消息体的长度,消息体为一个字符串的byte[]

  • 服务端先启动,监听6789端口

  • 客户端连接到服务端后,会主动向服务器发送一条消息

  • 服务器收到消息后会回应一条消息

  • 之后,框架层会自动从客户端发心跳到服务器,服务器也会检测心跳有没有超时

公用模块

引入maven依赖

即时通讯框架:talent-aio让天下没有难开发的即时通讯

定义业务消息包结构

即时通讯框架:talent-aio让天下没有难开发的即时通讯

有时候服务器和客户端的业务消息包结构不一样,这种情况下,消息包的定义就不要放在公共模块

编码

即时通讯框架:talent-aio让天下没有难开发的即时通讯

有时候服务器端和客户端的编码解码算法不一样,需要分别放在服务器端和客户端完成


解码

即时通讯框架:talent-aio让天下没有难开发的即时通讯

有时候服务器端和客户端的编码解码算法不一样,需要分别放在服务器端和客户端完成

约定端口

即时通讯框架:talent-aio让天下没有难开发的即时通讯

服务端代码

引入依赖

即时通讯框架:talent-aio让天下没有难开发的即时通讯


HelloServerAioHandler类

即时通讯框架:talent-aio让天下没有难开发的即时通讯

此处继承自HelloAbsAioHandler,父类已经完成编码和解码的工作

启动程序

即时通讯框架:talent-aio让天下没有难开发的即时通讯

客户端模块

引入依赖

即时通讯框架:talent-aio让天下没有难开发的即时通讯

HelloClientAioHandler类

即时通讯框架:talent-aio让天下没有难开发的即时通讯

此处继承自HelloAbsAioHandler,父类已经完成编码和解码的工作

启动程序

即时通讯框架:talent-aio让天下没有难开发的即时通讯

© 著作权归作者所有

孟飞阳
粉丝 217
博文 1057
码字总数 566384
作品 5
朝阳
个人站长
私信 提问
加载中

评论(1)

talent-tan
talent-tan
昨天有位朋友写了一篇通俗易懂的文章,可能关注:https://my.oschina.net/u/1168934/blog/864239
talent-aio 1.0.0 正式版,千呼万唤始出来

talent-aio 一经开源,就得到广大网友的支持,甚至在各大 netty 群传开。作者最近更是频繁更新,响应网友的各种需求。talent-aio 暂时的愿景是成为即时通讯框架界的 JFinal(简洁好用又不失灵...

talent-tan
2017/01/14
7.1K
43
talent-aio1.6.7 发布,输掉性能 PK 战后再度优化

web开发领域,springmvc之外有jfinal;TCP长连接领域,netty之外还有更易用的talent-aio 更好用、更接地气、支持百万级长连接的即时通讯框架,talent-aio 1.6.7正式版发布,已更新到maven中心...

talent-tan
2017/03/28
1K
27
talent-aio 1.0.2 发布,让天下没有难开发的即时通讯

web开发领域,springmvc之外有jfinal;TCP长连接领域,netty之外还有更易用的talent-aio 更好用、更接开发人员地气的TCP长连接框架,talent-aio 1.0.2正式版发布,已更新到maven中心仓库,t...

talent-tan
2017/03/06
8.8K
30
花十分钟时间给JFinal写了个tio插件

本人 JFinal 脑残粉,最近公司几个项目都需要跟硬件交互,这就得用到长连接,之前一直没接触过该领域,本来还想花时间研究下netty,讲真挺难啃的,找资料的时候翻到 t-io,略微了解发现似乎学...

小徐同学
2017/03/21
9.5K
35
即时通讯框架 talent-aio 0.6.8-alpha 发布

即时通讯框架 talent-aio 0.6.8-alpha 发布,已同步至 maven 中心仓库。 本次更新内容如下: 自动重连功能完成(客户端经常需要在断开连接后,马上主动再次连接) 默认参数优化(主要是read ...

talent-tan
2017/01/11
1K
4

没有更多内容

加载失败,请刷新页面

加载更多

zk中ToBeAppliedRequestProcessor解析

ToBeAppliedRequestProcessor在Leader中 在已处理事务和最后处理事务处理器之间,处理器链上下一个是FinalRequestProcessor public void processRequest(Request request) throws RequestPro...

writeademo
20分钟前
2
0
Allegro快捷键设置-PCB环境

立题简介: 内容:简单介绍Allegro绘制的PCB环境下的快捷键; 来源:实际使用得出; 作用:对Allegro绘制PCB快捷键进行介绍; PCB环境:Cadence 16.6; 立题详解: 对“allegro”板而言,其在...

demyar
21分钟前
2
0
idea maven web项目启动build时报错java.lang.NullPointerException

之前还好好的,重启一下idea就报这个错了,大概率是tomcat没杀掉端口被占用了,在tomcat配置中更换一下sever端口就好了

宇辰OSC
25分钟前
2
0
weed3-2.3.1.查询之输出

Weed3 一个超轻量级ORM框架(只有0.1Mb哦) 源码:https://github.com/noear/weed3 源码:https://gitee.com/noear/weed3 查询可是个复杂的话题了,可能我们80%的数据库处理都在查询。 今天先...

刘之西东
25分钟前
3
0
【Android JetPack系列】数据绑定:DataBinding

参考MVVM

Agnes2017
33分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部