<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[imtech4713的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/imtech4713</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; imtech4713]]></copyright><item><title><![CDATA[淘宝技术分享：手淘亿级移动端接入层网关的技术演进之路]]></title><link>https://blog.youkuaiyun.com/imtech4713/article/details/108098954</link><guid>https://blog.youkuaiyun.com/imtech4713/article/details/108098954</guid><author>imtech4713</author><pubDate>Wed, 19 Aug 2020 13:58:12 +0800</pubDate><description><![CDATA[本文由手机淘宝技术团队原创分享，吴志华（天施）、洪海（孤星）、陈虓将（仲升）等专家参与了本文创作，首次发表于公众号“淘系技术”，收录整理时有修订和改动。

1、引言

移动端网络的优化是超级APP们永恒的话题，而对于无线电商来说这更为重要，因为网络请求体验跟用户的购买行为息息相关。

手机淘宝从过去的HTTP API网关，到后来扛住双十一战场主要流量的自研高性能、全双工、安全的ACCS（阿里云通道服务），无论是基础架构的演进、网络调优、协议的优化、异地多活、网络调度上，都有不少宝贵的经验与大家分享，本文借此]]></description><category></category></item><item><title><![CDATA[脑残式网络编程入门(九)：面试必考，史上最通俗大小端字节序详解]]></title><link>https://blog.youkuaiyun.com/imtech4713/article/details/107979901</link><guid>https://blog.youkuaiyun.com/imtech4713/article/details/107979901</guid><author>imtech4713</author><pubDate>Thu, 13 Aug 2020 15:02:25 +0800</pubDate><description><![CDATA[1、引言

最近在从头重写MobileIMSDK的TCP版，自已组织TCP数据帧时就遇到了字节序大小端问题。所以，借这个机会单独整理了这篇文章，希望能加深大家对字节序问题的理解，加强对IM这种基于网络通信的程序在数据传输这一层的知识掌控情况。

程序员在写应用层程序时，一般不需要考虑字节序问题，因为字节序跟操作系统和硬件环境有关，而我们编写的程序要么不需要跨平台（比如只运行在windows），要么需要跨平台时会由Java这种跨平台语言在虚拟机层屏蔽掉了。

但典型情况，当你编写网络通信程序，比如IM聊天..]]></description><category></category></item><item><title><![CDATA[Web端即时通讯实践干货：如何让WebSocket断网重连更快速？]]></title><link>https://blog.youkuaiyun.com/imtech4713/article/details/107816611</link><guid>https://blog.youkuaiyun.com/imtech4713/article/details/107816611</guid><author>imtech4713</author><pubDate>Wed, 05 Aug 2020 15:43:01 +0800</pubDate><description><![CDATA[本文作者网易智慧企业web前端开发工程师马莹莹。为了提升内容质量，收录时有修订和改动。

1、引言

在一个完善的即时通讯IM应用中，WebSocket是极其关键的一环，它为基于Web的即时通讯应用提供了一种全双工的通信机制。但为了提升IM等实际应用场景下的消息即时性和可靠性，我们需要克服WebSocket及其底层依赖的TCP连接对于复杂网络情况下的不稳定性，即时通讯的开发者们通常都需要为其设计一套完整的连接保活、验活以及断片网重连方案。

就断网重连而言，其重连响应速度将严重影响了上层应用的“即时性”和用]]></description><category></category></item><item><title><![CDATA[IM开发干货分享：有赞移动端IM的组件化SDK架构设计实践]]></title><link>https://blog.youkuaiyun.com/imtech4713/article/details/107662853</link><guid>https://blog.youkuaiyun.com/imtech4713/article/details/107662853</guid><author>imtech4713</author><pubDate>Wed, 29 Jul 2020 14:15:33 +0800</pubDate><description><![CDATA[本文由有赞技术团队原创分享，原题“有赞 APP IM SDK 组件架构设计”，即时通讯网收录时有修订和改动，感谢原作者的无私分享。

1、引言

本文主要以Android客户端为例，记录了有赞旗下 App 中使用自研 IM，并将IM提炼成组件化SDK的设计思路。此项工作由有赞移动开发组 IM SDK 团队共同讨论完成。



在有赞产品中，存在大量需要交易双方沟通交流的场景，比如，客户咨询商家产品信息，售前售后简单的答疑和维权等。另外，有赞业务还存在一些特殊的复杂场景，如供应商、分销商、客户三方之间需要同步]]></description><category></category></item><item><title><![CDATA[零基础入门：实时音视频技术基础知识全面盘点]]></title><link>https://blog.youkuaiyun.com/imtech4713/article/details/107559993</link><guid>https://blog.youkuaiyun.com/imtech4713/article/details/107559993</guid><author>imtech4713</author><pubDate>Fri, 24 Jul 2020 14:17:28 +0800</pubDate><description><![CDATA[本文引用自公众号“开发的猫”，本次收录时有改动，感谢原作者“开发的猫”的分享。

1、引言

随着移动网络速度越来越快、质量越来越来，实时音视频技术已经在各种应用场景下全面开花，语音通话、视频通话、视频会议、远程白板、远程监控等等。

实时音视频技术的开发也越来越受到重视，但是由于音视频开发涉及知识面比较广，入门门槛相对较高，让许许多多开发者望而生畏。

虽然网上有很多的博文总结了实时音视频技术的学习路线，但是相关的知识都相对独立，有讲“音视频解码相关”的、有讲“OpenGL相关”的、也有讲“FFmpeg相]]></description><category></category></item><item><title><![CDATA[IM开发干货分享：如何优雅的实现大量离线消息的可靠投递]]></title><link>https://blog.youkuaiyun.com/imtech4713/article/details/107487371</link><guid>https://blog.youkuaiyun.com/imtech4713/article/details/107487371</guid><author>imtech4713</author><pubDate>Tue, 21 Jul 2020 14:09:21 +0800</pubDate><description><![CDATA[1、点评

IM聊天消息的可靠投递，是每个线上产品都要考虑的IM热点技术问题。

IM聊天消息能保证可靠送达，对于用户来说，就好比把钱存在银行不怕被偷一样，是信任的问题。试想，如果用户能明显感知到聊天消息无法保证送达，谁还愿意来用你的APP？谁也不希望自已的话就像浮云一样随风飘逝。

必竟用IM聊天，虽然很多时候是费话，但总有关键时刻存在——比如向女神表白（哪怕明知被拒），作为合格的舔狗一定不希望女神错过这条消息。



所以，消息的可靠投递是每款IM产品和立足之本，也是IM开发者们孜孜不倦追求的技术目标。]]></description><category></category></item><item><title><![CDATA[IM开发快速入门(一)：什么是IM系统？]]></title><link>https://blog.youkuaiyun.com/imtech4713/article/details/107227493</link><guid>https://blog.youkuaiyun.com/imtech4713/article/details/107227493</guid><author>imtech4713</author><pubDate>Thu, 09 Jul 2020 14:34:22 +0800</pubDate><description><![CDATA[本文在编写时参考了博客作者“鹿呦呦”和在线课程“即时消息技术剖析与实战”的相关资料，一并表示感谢。

1、系列文章引言

IM系统看似简单（没错，很多土老板认为开发个qq和微信也就是几万块钱的事...），实责是众多技术的应用合体，包括网络编程、移动开发、后端开发、高并发、高可用、高安全等技术范畴，再加上多端使用不同的编程语言，想要凑齐一个典型的IM产品技术栈那也不是个容易事。

而对于IM开发入门者来说，想要在众多的IM技术术语和概念中找到学习的方向和需要的资料，那也是件很让人抓狂的事。如果看到不该看的技.]]></description><category></category></item><item><title><![CDATA[IM群聊消息的已读未读功能在存储空间方面的实现思路探讨]]></title><link>https://blog.youkuaiyun.com/imtech4713/article/details/107083025</link><guid>https://blog.youkuaiyun.com/imtech4713/article/details/107083025</guid><author>imtech4713</author><pubDate>Thu, 02 Jul 2020 14:06:37 +0800</pubDate><description><![CDATA[1、引言

IM系统中，特别是在企业应用场景下，消息的已读未读状态是一个强需求。

以阿里的钉钉为例，钉钉的产品定位是用于商务交流，其“强制已读回执”功能，让职场人无法再“假装不在线”、“假装没收到”。更有甚者，钉钉的群聊“强制已读回执”功能，甚至能够知道谁读了消息，谁没有读消息（老板的福音啊）。



▲ 钉钉里的群聊消息已读未读功能效果

功能看起来很酷，但用起来是一言难尽（上班族心里苦....）。实际上，技术实现也并不容易。

那么，对于已读未读状态：

1）如果是私聊：消息的阅读状态比较容易实现，.]]></description><category></category></item><item><title><![CDATA[Android保活从入门到放弃：乖乖引导用户加白名单吧(附7大机型加白示例)]]></title><link>https://blog.youkuaiyun.com/imtech4713/article/details/106942590</link><guid>https://blog.youkuaiyun.com/imtech4713/article/details/106942590</guid><author>imtech4713</author><pubDate>Wed, 24 Jun 2020 14:01:32 +0800</pubDate><description><![CDATA[1、引言

IM在Android上的保活问题经常在即时通讯网的论坛和技术群里被讨论，自从Android 8.0后系统大大降低了后台运行应用的保活容忍度（详见《Android P正式版即将到来：后台应用保活、消息推送的真正噩梦》），保活从黑科技横行的时代进入了技术蛮荒阶段，真要实现保活，技术难度越来越大。



不过话说回来，既然用黑科技进行保活是Andriod技术的逆潮流，那何不回头是岸，做个“良民”？

本文将以某款线上的IM产品为例，介绍它是如何引导用户在多款主流机型上加白名单的，并分享了该款IM中已制]]></description><category></category></item><item><title><![CDATA[IM开发干货分享：我是如何解决大量离线消息导致客户端卡顿的]]></title><link>https://blog.youkuaiyun.com/imtech4713/article/details/106805474</link><guid>https://blog.youkuaiyun.com/imtech4713/article/details/106805474</guid><author>imtech4713</author><pubDate>Wed, 17 Jun 2020 13:50:38 +0800</pubDate><description><![CDATA[本文原题为“公司IM聊天系统改造升级之路”，由作者“刘莅”授权整理和发布，内容有些许改动，作者公众号：OutOfMemoryError。如需转载，请联系作者获得授权。

1、引言

好久没写技术文章了，今天这篇不是原理性文章，而是为大家分享一下由笔者主导开发实施的IM即时通讯聊天系统，针对大量离线消息（包括消息漫游）导致的用户体验问题的升级改造全过程。

文章中，我将从如下几个方面进行介绍：

1）这款IM产品的主要业务及特点；
	2）IM系统业务现状和痛点；
	3）升级改造之路；
	4）消息ACK逻辑的优]]></description><category></category></item><item><title><![CDATA[爱奇艺技术分享：轻松诙谐，讲解视频编解码技术的过去、现在和将来]]></title><link>https://blog.youkuaiyun.com/imtech4713/article/details/106662792</link><guid>https://blog.youkuaiyun.com/imtech4713/article/details/106662792</guid><author>imtech4713</author><pubDate>Wed, 10 Jun 2020 11:58:57 +0800</pubDate><description><![CDATA[1、内容点评

本文以轻松幽默的语气，讲解了视频编解码的一些基本常识，并以爱奇艺为例，讲述了视频编解码技术在国内的发展以及未来的一些展望。

▼ 阅读本文需要有一些音视频编解码技术的基础，否则请先阅读以下文章：


《即时通讯音视频开发（一）：视频编解码之理论概述》

《即时通讯音视频开发（二）：视频编解码之数字视频介绍》

《即时通讯音视频开发（三）：视频编解码之编码基础》

《即时通讯音视频开发（十九）：零基础，史上最通俗视频编码技术入门》


本文并未就具体的视频编解码概念进行深入的讨论，目的是尽可能]]></description><category></category></item><item><title><![CDATA[网络编程懒人入门(十二)：快速读懂Http/3协议，一篇就够！]]></title><link>https://blog.youkuaiyun.com/imtech4713/article/details/106535466</link><guid>https://blog.youkuaiyun.com/imtech4713/article/details/106535466</guid><author>imtech4713</author><pubDate>Wed, 03 Jun 2020 23:23:33 +0800</pubDate><description><![CDATA[本文中文译文由作者“ably.io”发布于公众号“高可用架构”，译文原题：《深入解读HTTP3的原理及应用》、英文原题：《HTTP/3 deep dive》（文末有译文和原文链接），即时通讯网收录时有少许改动，感谢原作者和译者的分享。

1、引言

HTTP3是HTTP协议的最新版本。从诞生之初，HTTP就是交换超文本文档的首选应用层协议。多年来，为了跟上互联网的发展，以及WWW上交换的内容种类增加，HTTP进行了几次重大升级，而HTTP/3就是目前的最新版本。

本文将从HTTP/3的基本概念、技术原理、]]></description><category></category></item><item><title><![CDATA[美团点评的移动端网络优化实践：大幅提升连接成功率、速度等]]></title><link>https://blog.youkuaiyun.com/imtech4713/article/details/106422825</link><guid>https://blog.youkuaiyun.com/imtech4713/article/details/106422825</guid><author>imtech4713</author><pubDate>Fri, 29 May 2020 12:11:18 +0800</pubDate><description><![CDATA[1、引言

网络优化对于移动端App产品的用户体验至关重要，也与公司的运营和营收息息相关。

这里列举两个公开的数据：


“《页面加载超过3秒，57%的用户会离开》”

“《Amazon页面加载延长1秒，一年就会减少16亿美金营收》”


网络性能对于用户体验的影响，将非常直接地反馈到业务的运营上。

而且，移动网络固有的弱网问题、DNS问题、连接性能等等都无法跟传统的固定网络相比。所以，优化移动端网络，显的尤其必要。

对于即时通讯应用（IM、消息推送）的开发者来说，无论是短连接还是长连接优化，都会直接]]></description><category></category></item><item><title><![CDATA[IM开发宝典：史上最全，微信各种功能参数和逻辑规则资料汇总]]></title><link>https://blog.youkuaiyun.com/imtech4713/article/details/106255072</link><guid>https://blog.youkuaiyun.com/imtech4713/article/details/106255072</guid><author>imtech4713</author><pubDate>Thu, 21 May 2020 13:31:30 +0800</pubDate><description><![CDATA[1、引言

IM应用的初学者们，在补全了各种基础技术知识后（如果您仍不具备这些知识，建议马上阅读《新手入门一篇就够：从零开发移动端IM》），在动手编码实践时，很多时候纠结的并不是功能该如何实现，而是这个功能该实现成什么样（没有经验，我特玛能找谁问问？）。

比如，最常见的纠结有以下这些：

1）离线聊天消息该保存多久？
	2）好友请求应该保存多久？
	3）短视频消息中的视频时长设为多大合适？
	4）图片、短视频、语音这些多媒体消息中，未读的文件数据保存多久？
	5）群管理的逻辑该怎么弄？参考微信？还是参考Q]]></description><category></category></item><item><title><![CDATA[5G消息能取代IM？一文读懂5G消息的前世今生！]]></title><link>https://blog.youkuaiyun.com/imtech4713/article/details/106116837</link><guid>https://blog.youkuaiyun.com/imtech4713/article/details/106116837</guid><author>imtech4713</author><pubDate>Thu, 14 May 2020 11:52:30 +0800</pubDate><description><![CDATA[本文引用了公众号“鲜枣课堂”的《5G消息（RCS），到底是什么？》和公众号“InfoQ”的《5G消息来了，它会干掉微信还是变成另一个飞信？》两篇文章的部分内容，感谢原作者的分享。

1、引言

上个月3大运营商（移动、电信、联通）发布了《5G消息白皮书》（此白皮书PDF版▶ 点此附件下载），宣布将共同启动5G消息业务。





简单理解，5G消息相当于是原先短消息服务的全新升级。与以前的短消息相比，5G消息具有多媒体、能互动服务的能力，不仅有文字、图片，还能发视频、位置，甚至进行支付。

嗯，听起很熟..]]></description><category></category></item><item><title><![CDATA[IM开发基础知识补课(九)：想开发IM集群？先搞懂什么是RPC！]]></title><link>https://blog.youkuaiyun.com/imtech4713/article/details/106016033</link><guid>https://blog.youkuaiyun.com/imtech4713/article/details/106016033</guid><author>imtech4713</author><pubDate>Sat, 09 May 2020 12:01:30 +0800</pubDate><description><![CDATA[本文引用了后端技术指南针公众号“浅谈RPC那些事儿1”和即时通讯网的“即时通讯新手入门：快速理解RPC技术——基本概念、原理和用途”两篇文章的部分内容。

1、引言

经常有开发者在纠结怎么开发IM集群，虽然真正的使用人数，可能用个人电脑单机都能支撑。

你也许会说，明明不需要用到IM集群，干吗要自找麻烦？答曰：“老板说这个得有！”、“万一产品做成了，用户量达到百万、千万级呢？”，各种回答，反此种种。总之，IM集群就是得整一个（先甭管用不用的上...）。

当然，玩笑归玩笑，真正要做到可投入到生产级别的IM]]></description><category></category></item><item><title><![CDATA[适合新手：手把手教你用Go快速搭建高性能、可扩展的IM系统(有源码)]]></title><link>https://blog.youkuaiyun.com/imtech4713/article/details/105810585</link><guid>https://blog.youkuaiyun.com/imtech4713/article/details/105810585</guid><author>imtech4713</author><pubDate>Tue, 28 Apr 2020 12:10:19 +0800</pubDate><description><![CDATA[本文为开源工程：“github.com/GuoZhaoran/fastIM”的配套文章，原作者：“绘你一世倾城”，现为：猎豹移动php开发工程师，感谢原作者的技术分享。

0、引言

阅读提示：本文适合有一定网络通信技术基础的IM新手阅读。如果你对网络编程，以及IM的一些理论知识知之甚少，请务必首先阅读：《新手入门一篇就够：从零开发移动端IM》，按需补充相关知识。

配套源码：本文写的虽然有点浅显...]]></description><category></category></item><item><title><![CDATA[[资源] 阿里《Java开发手册v1.6.0-泰山版》发布]]></title><link>https://blog.youkuaiyun.com/imtech4713/article/details/105703877</link><guid>https://blog.youkuaiyun.com/imtech4713/article/details/105703877</guid><author>imtech4713</author><pubDate>Thu, 23 Apr 2020 11:45:20 +0800</pubDate><description><![CDATA[阿里巴巴技术团队于2020年04月22日发布《Java开发手册v1.6.0-泰山版》。


1、概述

2017年开春之际，阿里诚意献上重磅大礼：《阿里巴巴Java开发手册(规约)》，首次公开阿里官方Java代码规范标准。这套Java统一规范标准将有助于提高行业编码规范化水平，帮助行业人员提高开发质量和效率、大大降低代码维护成本。

《阿里巴巴Java开发手册(规约)》是阿里内部Java工程师所...]]></description><category></category></item><item><title><![CDATA[爱奇艺移动端网络优化实践分享：网络请求成功率优化篇]]></title><link>https://blog.youkuaiyun.com/imtech4713/article/details/105657541</link><guid>https://blog.youkuaiyun.com/imtech4713/article/details/105657541</guid><author>imtech4713</author><pubDate>Tue, 21 Apr 2020 14:31:40 +0800</pubDate><description><![CDATA[本文原始内容由爱奇艺技术产品团队原创分享，本次有修订和改动。

1、引言

由于移动网络的复杂性特点，编写高质量、体验好的具备网络通信能力的移动端应用（尤其是即时通讯这类网络质量高度敏感的应用）有很大的挑战性。

我们平时看到的移动网络主要有如下三个典型特点：


1）移动状态网络信号不稳定，高时延、易抖动丢包、通道狭窄；

2）移动状态网络接入类型和接入点变化频繁；

3）移动状态用户使用高频化...]]></description><category></category></item><item><title><![CDATA[网络编程懒人入门(十一)：一文读懂什么是IPv6]]></title><link>https://blog.youkuaiyun.com/imtech4713/article/details/105576282</link><guid>https://blog.youkuaiyun.com/imtech4713/article/details/105576282</guid><author>imtech4713</author><pubDate>Fri, 17 Apr 2020 11:49:34 +0800</pubDate><description><![CDATA[本文参考了公众号鲜枣课堂的“IPv6，到底是什么？”一文的部分内容，感谢原作者。


1、引言

现在IPv6的技术应用已经越来越普及了，很多应用都开始支持IPv6。



▲ 去年开始，支付宝的官网上就已出现“支持IPv6”标识

对于即时通讯技术（尤其是IM应用）的开发者来说，新产品上架苹果的App Store因IPv6问题被拒的情况，很常见。每次也都能根据网上的资料一一解决，并顺利通过审核...]]></description><category></category></item></channel></rss>