2016年11月18日

[置顶] IM消息送达保证机制实现(二):保证离线消息的可靠投递

摘要:本文的上篇我们讨论了在线实时消息的投递,如果接收方用户B不在线,系统是如何保证离线消息的可达性的呢?这就是本文要讨论的问题。 阅读全文

posted @ 2016-11-18 14:25 helloJackJiang 阅读 (400) 评论 (0) 编辑

2016年10月21日

[置顶] 【原创】高性能网络编程(二):上一个10年,著名的C10K并发连接问题

摘要:虽然C10K问题已被妥善解决,但对于即时通讯应用(或其它网络编程方面)的开发者而言,研究C10K问题仍然价值巨大,因为技术的发展都是有规律和线索可循的,了解C10K问题及其解决思路,通过举一反三,或许可以为你以后面对类似问题提供更多可借鉴的思想和解决问题的实践思路。而这,也正是撰写本文的目的所在。 阅读全文

posted @ 2016-10-21 15:50 helloJackJiang 阅读 (1673) 评论 (0) 编辑

2016年9月26日

[置顶] 理论经典:TCP协议的3次握手与4次挥手过程详解

摘要:本文将分别讲解经典的TCP协议建立连接(所谓的“3次握手”)和断开连接(所谓的“4次挥手”)的过程。 阅读全文

posted @ 2016-09-26 16:08 helloJackJiang 阅读 (145) 评论 (0) 编辑

2016年9月7日

[置顶] 技术往事:改变世界的TCP/IP协议(珍贵多图、手机慎点)

摘要:本文将简要回故TCP/IP协议的过去、简单介绍TCP/IP协议族的关系,并与大家一起直观地分享由TCP/IP协议族所构建的虚拟网络与真实世界的“连接”情况。 阅读全文

posted @ 2016-09-07 15:12 helloJackJiang 阅读 (243) 评论 (0) 编辑

2016年9月6日

[置顶] 为什么说基于TCP的移动端IM仍然需要心跳保活?

摘要:很多人认为,TCP协议自身先天就有KeepAlive机制,为何基于它的通讯链接,仍然需要在应用层实现额外的心跳保活?本文将从移动端IM实践的角度告诉你,即使使用的是TCP协议,应用层的心跳保活仍旧必不可少。 阅读全文

posted @ 2016-09-06 16:53 helloJackJiang 阅读 (331) 评论 (0) 编辑

2016年8月29日

[置顶] 简述移动端IM开发的那些坑:架构设计、通信协议和客户端

摘要:有过移动端开发经历的开发者都深有体会:移动端IM的开发,与传统PC端IM有很大的不同,尤其无线网络的不可靠性、移动端硬件设备资源的有限性等问题,导致一个完整的移动端IM架构设计和实现都充满着大量的挑战。本文将简述移动端IM最重要的架构设计和通信协议选择方面的坑点,希望为IM开发者同行带来些许启发。 阅读全文

posted @ 2016-08-29 17:20 helloJackJiang 阅读 (970) 评论 (0) 编辑

2016年8月15日

[置顶] 移动端IM系统的协议选型:UDP还是TCP?

摘要:移动端IM/推送到底该选TCP还是UDP?鉴于移动网络的不可靠性、手机的省电策略、流量压缩、服务端负载等因素,本文将从作者的实践总结,给出自已的观点。 阅读全文

posted @ 2016-08-15 16:20 helloJackJiang 阅读 (824) 评论 (0) 编辑

2016年8月4日

[置顶] 如何选择即时通讯应用的数据传输格式

摘要:即时通讯应用(包括IM聊天应用、实时消息推送应用等)开发的前期技术选型时,关于数据传输格式的选择,在即时通讯开发者同行的眼里,是个极富争议话题。 阅读全文

posted @ 2016-08-04 15:34 helloJackJiang 阅读 (158) 评论 (0) 编辑

2016年8月3日

[置顶] 【原创】新手入门一篇就够:从零开发移动端IM

摘要:本文将以新手的视角引导你阅读相关文章,以便为从零开发一个移动端IM做好方方面面的知识准备:包括但不限于网络编程基础、通信协议的选型、IM的架构设计等等。 阅读全文

posted @ 2016-08-03 12:10 helloJackJiang 阅读 (166) 评论 (0) 编辑

2016年7月28日

[置顶] 开源IM工程“蘑菇街TeamTalk”的现状:一场有始无终的开源秀

摘要:本文将简要介绍TeamTalk开源的过去和现在,为打算研究和采用TeamTalk的同行提供一定程度的参考。文中所涉及内容如有不妥,还请各位看官见谅。 阅读全文

posted @ 2016-07-28 13:43 helloJackJiang 阅读 (422) 评论 (0) 编辑

2016年7月22日

[置顶] Web端即时通讯技术盘点:短轮询、Comet、Websocket、SSE

摘要:Web端即时通讯技术因受限于浏览器的设计限制,一直以来实现起来并不容易,主流的Web端即时通讯方案大致有4种:传统Ajax短轮询、Comet技术、WebSocket技术、SSE(Server-sent Events)。本文将简要介绍这4种技术的原理,并指出各自的异同点、优缺点等。 阅读全文

posted @ 2016-07-22 17:52 helloJackJiang 阅读 (545) 评论 (2) 编辑

2016年7月15日

[置顶] Android后台保活实践总结:即时通讯应用无法根治的“顽疾”

摘要:本文基于作者的实践以及相关资料的整理,总结了自已对Android进程和Service保活的理解,希望能为你的应用开发带来启发。 阅读全文

posted @ 2016-07-15 18:12 helloJackJiang 阅读 (2685) 评论 (0) 编辑

2016年7月12日

[置顶] 新手入门:史上最全Web端即时通讯技术原理详解

摘要:Web端的IM应用,由于浏览器的兼容性以及其固有的“客户端请求服务器处理并响应”的通信模型,造成了要在浏览器中实现一个兼容性较好的IM应用,其通信过程必然是诸多技术的组合,本文的目的就是要详细探讨这些技术并分析其原理和过程。 阅读全文

posted @ 2016-07-12 15:53 helloJackJiang 阅读 (1322) 评论 (0) 编辑

2016年6月30日

[置顶] 【原创】NIO框架入门(四):Android与MINA2、Netty4的跨平台UDP双向通信实战

摘要:本文演示的是一个Android客户端程序,通过UDP协议与两个典型的NIO框架服务端(分别用MINA2和Netty4来实现),实现跨平台双向通信的完整Demo。 阅读全文

posted @ 2016-06-30 16:52 helloJackJiang 阅读 (3054) 评论 (1) 编辑

2016年6月28日

[置顶] 【原创】NIO框架入门(三):iOS与MINA2、Netty4的跨平台UDP双向通信实战

摘要:本文将演示一个iOS客户端程序,通过UDP协议与两个典型的NIO框架服务端(将分别用MINA2和Netty4来实现),实现跨平台双向通信的完整Demo。 阅读全文

posted @ 2016-06-28 15:52 helloJackJiang 阅读 (680) 评论 (0) 编辑

2016年6月24日

[置顶] 【原创】NIO框架入门(二):服务端基于MINA2的UDP双向通信Demo演示

摘要:本文是《NIO框架入门》系列文章中的第2篇,将演示的是一个基于MINA2的UDP服务端和一个标准UDP客户端(Java实现)双向通信的完整例子。 阅读全文

posted @ 2016-06-24 14:28 helloJackJiang 阅读 (5205) 评论 (0) 编辑

2016年6月20日

[置顶] 【原创】NIO框架入门(一):服务端基于Netty4的UDP双向通信Demo演示

摘要:本文将演示的是一个基于Netty4的UDP服务端和一个标准UDP客户端(Java实现)双向通信的完整例子。实际上,Netty4的UDP例子非常难找,官方的代码演示里只有一个简单的UDP广播例子,不足以用于演示Netty4的UDP通信最佳实践。 阅读全文

posted @ 2016-06-20 15:21 helloJackJiang 阅读 (9185) 评论 (0) 编辑

2020年1月14日

史上最强Android保活思路:深入剖析腾讯TIM的进程永生技术

摘要:1、引言 随着Android系统的不断升级,即时通讯网技术群和社区里的IM和推送开发的程序员们,对于进程保活这件事是越来越悲观,必竟系统对各种保活黑科技的限制越来越多了,想超越系统的挚肘,难度越来越大。 但保活这件事就像“激情”之后的余味,总是让人欲罢不能,想放弃又不甘心。那么,除了像上篇《2020 阅读全文

posted @ 2020-01-14 14:20 helloJackJiang 阅读 (80) 评论 (0) 编辑

2020年1月8日

IM的扫码登录功能如何实现?一文搞懂主流的扫码登录技术原理

摘要:1、引言 扫码登录这个功能,最早应该是微信的PC端开始搞,虽然有点反人类的功能(不扫码也没别的方式登录),但不得不说还是很酷的。 下面这张图,不管是IM开发者还是普通用户,应该很熟悉: 于是,搞IM产品的老板和产品经理们,从此又多了一个要抛给程序员们的需求——“为什么微信有扫一扫登录,而我们的没有? 阅读全文

posted @ 2020-01-08 13:37 helloJackJiang 阅读 (25) 评论 (0) 编辑

2020年1月2日

IM“扫一扫”功能很好做?看看微信“扫一扫识物”的完整技术实现

摘要:本文由腾讯WXG应用研究员breezecheng原创发表于公众号“腾讯技术工程”,原题“微信「扫一扫识物」 的背后技术揭秘”。 一、引言 现在市面上主流的移动端IM应用于都有“扫一扫”功能,看起来好像也就能扫一扫加好友、加群,但实际上作为一个IM产品的重要信息入口,“扫一扫”功能也可以很强大。 ▲ 阅读全文

posted @ 2020-01-02 20:54 helloJackJiang 阅读 (92) 评论 (0) 编辑

2019年12月27日

2020年了,Android后台保活还有戏吗?看我如何优雅的实现!

摘要:1、引言 对于移动端IM应用和消息推送应用的开发者来说,Android后台保活这件事是再熟悉不过了。 自从Android P(即Android 8.0)出现以后,Android已经从系统层面将后台保活这条路给堵死了(详见:《Android P正式版即将到来:后台应用保活、消息推送的真正噩梦》),曾今 阅读全文

posted @ 2019-12-27 14:50 helloJackJiang 阅读 (234) 评论 (0) 编辑

2019年12月24日

P2P技术详解(三):P2P中的NAT穿越(打洞)方案详解(进阶分析篇)

摘要:原作者:黄日成,手Q游戏中心后台开发,腾讯高级工程师。从事C++服务后台开发4年多,主要负责手Q游戏中心后台基础系统、复杂业务系统开发,主导过手Q游戏公会、企鹅电竞App-对战系统等项目的后台系统设计,有丰富的后台架构经验。 1、引言 接本系列的上一篇《P2P技术详解(二):P2P中的NAT穿越(打 阅读全文

posted @ 2019-12-24 11:21 helloJackJiang 阅读 (67) 评论 (0) 编辑

2019年12月19日

微信团队分享:极致优化,iOS版微信编译速度3倍提升的实践总结

摘要:1、引言 岁月真是个养猪场,这几年,人胖了,微信代码也翻了。 记得 14 年转岗来微信时,用自己笔记本编译微信工程才十来分钟。如今用公司配的 17 年款 27-inch iMac 编译要接近半小时;偶然间更新完代码,又莫名其妙需要全新编译。在这么低的编译效率下,开发心情受到严重影响。 于是年初我向上 阅读全文

posted @ 2019-12-19 20:18 helloJackJiang 阅读 (88) 评论 (0) 编辑

2019年12月17日

史上最通俗,彻底搞懂字符乱码问题的本质

摘要:1、引言 IM等社交应用的开发工作中,乱码问题也很常见,比如: 1)IM聊天消息中的Emoji表情为什么发给后端后MySQL数据库里会乱码; 2)文件名中带有中文的大文件聊天消息发送后,对方看到的文名是乱码; 3)Http rest接口调用时,后端读取到APP端传过来的参数有中文乱码问题; ... 阅读全文

posted @ 2019-12-17 19:30 helloJackJiang 阅读 (35) 评论 (0) 编辑

2019年12月10日

你知道,HTTPS用的是对称加密还是非对称加密?

摘要:本文引用了作者“leapMie”的“HTTPS 原理分析——带着疑问层层深入”一文内容,感谢原作者的文字。 1、引言 随着互联网安全意识的普遍提高,对安全要求稍高的应用中,HTTPS的使用是很常见的,甚至在1年前,苹果公司就将使用HTTPS作为APP上架苹果应用市场的先决条件之一(详见:《苹果即将强 阅读全文

posted @ 2019-12-10 12:13 helloJackJiang 阅读 (69) 评论 (0) 编辑

2019年12月7日

IM开发基础知识补课(七):主流移动端账号登录方式的原理及设计思路

摘要:1、引言 在即时通讯网经常能看到各种高大上的高并发、分布式、高性能架构设计方面的文章,平时大家参加的众多开发者大会,主题也都是各种高大上的话题——什么5G啦、AI人工智能啦、什么阿里双11分分钟多少万QPS高并发等等。 但实际上,对于普通的开发者(包括IM开发人员)来说,多数公司、多数团队也都是干着 阅读全文

posted @ 2019-12-07 17:41 helloJackJiang 阅读 (40) 评论 (0) 编辑

2019年12月1日

面视必备,史上最通俗计算机网络分层详解

摘要:1、引言 整个暑假去面试,面试了很多家公司(无论是小厂还是大厂)问到的深度不同,网络原理是面试最容易问到的问题,虽然我们在项目中很少去实践它,但是了解其原理,会让我们背后网络通信是如果工作的,既能在面试官面前体现出你的基础是否扎实,也能对以后深入网络这部分学习有更多的了解。 很多同学面试在准备这部分 阅读全文

posted @ 2019-12-01 15:58 helloJackJiang 阅读 (63) 评论 (0) 编辑

导航

Jack Jiang的 Mail: jb2011@163.com, 个人主页: 点此进入 , 微信: hellojackjiang