网络编程从大的方面说就是对信息的发送到接收,中间传输为物理线路的作用。
网络编程最主要的工作就是在发送端把信息通过规定好的协议进行组装包,在接收端按照规定好的协议把包进行解析,从而提取出对应的信息,达到通信的目的。中间最主要的就是数据包的组装,数据包的过滤,数据包的捕获,数据包的分析,当然最后再做一些处理,代码、开发工具、数据库、服务器架设和网页设计这5部分你都要接触。
本文主要跟大家分享一个在开源中国中的开源项目t-io,开源许可协议Apache 2.0,作者:talent-tan。
t-io 诞生的意义
旧时王谢堂前燕,飞入寻常百姓家----当年那些王谢贵族们才拥有的"百万级即时通讯"应用,将因为t-io的诞生,纷纷飞入普通人家的屋檐下。
t-io 简介
t-io 是一个网络框架,从这一点来说是有点像 netty 的,但 t-io 的特点在于,它不仅仅是一个网络框架, 因为它为常见和网络相关的业务(如IM、消息推送、RPC、监控)提供了近乎于现成的解决方案,即开箱即用的 API ,简单列举如下
一个连接绑定 userid(一个 userid 可以绑定多个连接,用于多端登录,可双向查找)
一个连接绑定 token(一个 token 可以绑定多个连接,用于多端登录,可双向查找)
一个连接绑定群组(用于推送消息、IM中的群聊)
提供了各种各样的发送消息 API,这些 API 都位于 Aio.java 中
提供了各种各样和业务数据绑定的 API ,这些 API 都位于 Aio.java 中
提供了各种各样查找连接的 API ,这些 API 都位于 Aio.java 中,都是以 get 开头的
其它各种 API 不一一列举,可以去看一下 Aio.java
提供了最强级别的监控和统计 API ,应用层只需要调用 API 就能拿到这些监控数据,方便反黑(tio官网当年被黑,在查找凶手的过程中,这些监控API提供了汗马功劳)
内置心跳检查功能,省去业务端去编写定时任务检查无良连接
内置心跳发送功能
内置断链重边功能(不要小看这个功能,貌似这这个功能花了作者不少时间,注:不止是单个连接的自动重连,是所有连接的自动重连,在实现这个功能时需要考虑很多因素)
极其震撼的性能,那个每秒发送500万条聊天消息的测试当年引起了极大争议,我也就不再描述了,看看用户的一则测试报告吧: t-io 30W长连接并发压力测试报告,为了避免各种上争议,t-io官方以后将不再进行测试数据公布,因为t-io不是一个商业框架,而是开源的!
Api思维导图:
基于t-io,目前已经有可用的 tio-http-server、tio-websocket-server、tio-im等生态组件,这些组件可以直接享用前面提到的那些API,让开发人员更灵活地把控每个交互细节。除些之外,tio在开发某些功能中抽象出了如 两级缓存、定时任务等小工具,方便大家使用,此处不一一列举。
领取专属 10元无门槛券
私享最新 技术干货