一张误传t-io的图
纠正后的图
误传的原图
纠正说明
- http:t-io社交IM基础平台和牛吧云播就是基于tio-http-server开发的。tio-http-server示范工程
- ssl:请参考:使用SSL(获取SSL证书、生成JKS、t-io使用SSL)
- udp:请参考:示范工程
- 半包粘包:支持半包粘包是任何一个成熟io框架必须拥有的能力,否则就没法玩了。只是在下必须对这个东西进行特别说明
- 没有任何一个io框架可以自行判断当前参与解码的ByteBuffer是半包还是粘包(这是常识,如果有人说有某框架能做到,那一定是无知或说谎)
- 在tio中,业务端只要解码的方法中返回null,即表示这是半包,tio在框架层会自行把当前的ByteBuffer暂存起来,用于与下次收到的ByteBuffer进行组合
- 至于粘包,业务端几乎感知不到----业务端在解码的方法中,只需一个一个解码即可,tio会自行判断,当前是否还有多余的byte[]没参与解码,一旦发现有多余的byte[],tio会自行循环调用业务端的解码方法
- 更详细的请参考:t-io对半包和粘包的处理
- 关于零拷贝:零拷贝属于内部实现算法,不能作为功能点列出来,虽然t-io没有用零拷贝来实现高性能,但是t-io自创了同步安全线程池来提升系统性能,详见:t-io和netty的差异,算法是为最终目的服务的,不存在算法A比算法B更高大上
说明
网上流传的这张图,原文作者是Voovan作者,这差不多是两年前左右的事了,当时这张图是正确的,t-io后来飞速发展,在功能和性能都得到了极速迭代,并经历了众多成功案例考验,那么曾经正确的数据就变得过时了,请各位知悉!