t-io
m0_38001657
这个作者很懒,什么都没留下…
展开
-
用t-io从零写一个像微信的IM(05):架构设计
关于架构将帅无能,累死三军;架构不行,耗死码农。架构之于软件,同地基之于大厦。地基腐则大厦塌,架构烂则软件败架构图架构解说1. 多级缓存两级是使用较多的一个流程,所谓两级缓存指的是本地缓存和分布式缓存,当本地缓存没有命中时,则去分布式缓存中获取数据;而本架构中说到了多级缓存,是将本地缓存又分为拦截器之前的缓存和业务数据缓存。拦截器之前的缓存指的是收到请求时,直接从请求路径中获取缓存,如果命中则直接返回;业务数据缓存比较大众,本文略过介绍2. 协议适配/转换web型的客户端,用webs原创 2020-12-30 11:05:42 · 266 阅读 · 3 评论 -
用t-io从零写一个像微信的IM(04):IM协议设计
协议设计原则1. 安全鉴权和授权是安全的两大要素,协议设计时,鉴权和授权是必须要考虑进去的2. 高效高效包括开发高效和运行高效,开发高效要求协议易懂、易编码、易解码,运行高效要求编解码算法高效、没有多余无用的体积3. 可扩展既能满足现有需求,在未来发生较大需求变更时,协议也能适应协议格式参考协议格式说明当5个字节的消息头满足不了消息元数据时,可以增设二级消息头,譬如命令码为9899时,有二级消息头,二级消息头里重新定义业务命令码碰到上传图片或文件的需求时,不建议走IM协议,而是走HT原创 2020-12-22 10:57:12 · 662 阅读 · 1 评论 -
用t-io从零写一个像微信的IM(03):网络框架选择
用t-io从零写一个像微信的IM(03):网络框架选择网络框架的选择主要指服务器端,毕竟IM的技术门槛都在服务器端(这并不是说客户端不难,只是相对而言技术门槛不是那么高)这里先给出结论,我们选择的是t-io,这里有一份**《t-io技术白皮书》**,可以参考一下给出结论后,来说说为什么选择t-io。以IM的需求来说明为什么说选择t-io是个不错的思路1. 既要支持socket又要支持websocket既要支持socket又要支持websocket的网络框架很多,但是我们想的更多的是,这两个协议能原创 2020-11-26 09:57:38 · 248 阅读 · 0 评论 -
用t-io从零写一个像微信的IM(02):团队组建
用t-io从零写一个像微信的IM(02):团队组建决心要做一个靠谱的IM,优秀的研发团队是必不可少的,对于研发工程师,定了几条择人标准必须熟练socket、多线程、数据结构、算法、HTTP协议完整地经历过大型互联网项目,并且这个项目在技术上是成功的有诚信、有担当、有毅力很幸运,刚被忍痛解散的技术部的核心员工完整地满足了以上几条择人标准(像牛吧云播这种大型直播平台,工程师手上没点真本领,还真做不出来),顺势而为,团队组建相对轻松总设计师:先让我顶上吧服务端主程:熟悉t-io,经历过热波直播原创 2020-11-17 19:02:51 · 159 阅读 · 0 评论 -
用t-io从零写一个像微信的IM(01):大背景
用t-io从零写一个像微信的IM(01):大背景2017年t-io官方上线为了演示t-io的能力,在官网上挂了一个网页版的IM这版IM主要用于"试验",架构上没做太多周全的考虑,很快就沦为了弃婴。某天,无心插柳地这一版的源代码私下发给了小超,小超把这一版的代码作了一些修改,开源出去了,这就是后来的j-im,j-im在码云上的star数还够可以的2018年上海一家公司找我们合作开发一款带IM功能的社交平台,虽然合作并未成行,但这重新坚定了我要写一个完整IM的决心从这一年的9月开始,每天下原创 2020-11-16 14:38:27 · 349 阅读 · 1 评论 -
Tio-Android简单使用篇
一、TioClient初始化1.获取IM服务器地址// 创建Tio客户端TioClient mClient = new TioClient();ImServerAddress address = mClient.requestAddress(null);String ip = address.getIp();int port = address.getPort();2.初始化T...转载 2019-08-14 09:10:22 · 1608 阅读 · 1 评论