# t-io
**Repository Path**: xtgss007/t-io
## Basic Information
- **Project Name**: t-io
- **Description**: t-io: 百万级TCP长连接即时通讯框架,让天下没有难开发的即时通讯。
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2912
- **Created**: 2017-05-15
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## **t-io: 百万级TCP长连接即时通讯框架,让天下没有难开发的即时通讯**
t-io是基于jdk aio实现的易学易用、稳定耐操、性能强悍、**将多线程运用到极致**、内置功能丰富、核心代码只有3000多行(2017年05月13号统计)的即时通讯框架(广义上的即时通讯,并非指im),字母 t 寓意talent。
#### **常见应用场景**
- IM(官方提供了im例子,含web端)
- 实时监控
- 推送服务(已内置API)
- RPC
- 游戏
- 物联网(已有很多案例)
- 其它实时通讯类型的场景,不一一列举
#### **晒一下作者花两天时间用t-io和[layim](http://layim.layui.com/)做的[web im](http://www.t-io.org:9292/im/app/im/index.html?t_io_v=34344545676)**
- 先感谢一下贤心提供这么好的ui作品,也欢迎大家去捐赠获取[layim](http://layim.layui.com/),本人捐赠了[layim](http://layim.layui.com/),**只是贤心又零差价地回捐了t-io**。
- 东西刚刚出来,还需要打磨,有问题在所难免,毕竟只花了两天时间。
- [演示地址](http://www.t-io.org:9292/im/app/im/index.html?t_io_v=34344545676)(2M带宽,请勿压测,谢谢!)
- 截图
---

---

---
## 重点强调
- [**社区提问规范**](http://www.t-io.cn:9292/howtoqa.html)
- [**入群提问规范**](https://my.oschina.net/talenttan/blog/888808)
- **请陌生的朋友不要再私下提问**
## maven坐标
```
org.t-io
tio-core
1.7.0.v20170501-RELEASE
```
## **各种传送门**
- [t-io生态圈建设](http://www.t-io.org:9292/ecosphere.html?t_io_v=34344545676)
- [t-io + layim开发的足够风骚的web im](http://www.t-io.org:9292/im/app/im/index.html?t_io_v=34344545676)
- [官 网][1]
- [代码托管平台码云](https://git.oschina.net/tywo45/t-io)
- [开源中国收录地址](https://www.oschina.net/p/t-io)
- [talent-tan写的t-io系列文档](https://my.oschina.net/talenttan/blog?catalog=5625247)
- [aio系列文档(1)----t-io的hello world][2]
- [aio系列文档(2)----图解bytebuffer](https://my.oschina.net/talenttan/blog/889887)
- [aio系列文档(3)----protobuf入门与使用](https://my.oschina.net/talenttan/blog/885477)
- [aio系列文档(4)----t-io源代码阅读小记](https://my.oschina.net/talenttan/blog/884466)(具体内容[millions_chan](http://www.jianshu.com/u/be7966e52d09)所写)
- [卡尔码农写的t-io系列文档](https://my.oschina.net/u/2461727/blog)
- [t-io 入门篇(三)即时消息发送demo学习](https://my.oschina.net/u/2461727/blog/897548)
- [t-io入门篇(二)](https://my.oschina.net/u/2461727/blog/894533)
- [t-io学习入门篇(一)](https://my.oschina.net/u/2461727/blog/893899)
- 其它小伙伴写的零碎文章和作品
- [给jfinal写的t-io插件](https://my.oschina.net/u/1168934/blog/864239)----小徐同学花10分钟完成的作品
- [用t-io实现的简单rpc](https://my.oschina.net/longtutengfei/blog/892053)----仅作思路参考,部分实现待完善
- [jfinal + t-io完成的im项目](https://git.oschina.net/kobe577590/im)----作者天蓬小猪正在完善
- [API][3](只需要看[Aio.java][4])
- [资料及问题汇总][5]
## **t-io特点**
### 极简洁、清晰、易懂的API
- 没有生涩难懂的新概念,原生态bytebuffer既减少学习成本,又减少各种中间对象的创建
- 只需花上30分钟学习helloworld,就能较好地掌握并实现一个性能极好的即时通讯应用
### 极震撼的性能
- 单机轻松支持**百万级tcp长连接**,彻底甩开业界C1000K烦恼;
- 最高时,每秒可以收发500万条消息,约165M
### 对开发人员极体贴的内置功能
- **内置心跳检测**
- **内置心跳发送**
- **各种便捷的绑定API**
```
//绑定用户
Aio.bindUser(channelContext, userid);
//解绑用户
Aio.unbindUser(channelContext);
//绑定群组
Aio.bindGroup(channelContext, groupid);
//解绑所有群组
Aio.unbindGroup(channelContext);
//解绑指定群组
Aio.unbindGroup(group, channelContext);
```
- **各种便捷的发送API**
```
//组群发
Aio.sendToGroup(groupContext, groupid, packet);
//组群发
Aio.sendToGroup(groupContext, groupid, packet, channelContextFilter);
//发消息给所有连接
Aio.sendToAll(groupContext, packet, channelContextFilter);
//发消息给用户
Aio.sendToUser(groupContext, userid, packet);
// ... ...还有其它常规发送API,不一一列举
```
- **一行代码拥有自动重连功能**
```
//只需要设置ReconnConf对象即可
ReconnConf