IM通讯协议专题学习(三):由浅入深,从根上理解Protobuf的编解码原理

2022-11-24
阅读 8 分钟
681
1、引言搞即时通讯IM方面开发的程序员,在谈到通讯层实现时,必然会提到网络编程。那么计算机网络编程中的一个非常基本的问题:到底该怎样组织Client与server之间交互的数据呢?本篇文章我们不讨论IM系统中的那些高端技术话题,我们回归到通讯的本质——也就是数据在网络中交互时的编解码原理,并由浅入深从底层理解Protob...
封面图

即时通讯技术文集(第6期):移动端弱网优化文章汇总 [共13篇]

2022-11-21
阅读 2 分钟
737
[摘要]短连接的优化在某些场景下对于移动端IM来说可能显示的更为特出。在这方面,微信做的比较彻底和极端,几乎再造了一套针对移动端IM的网络层框架(详见:《如约而至:微信自用的移动端IM网络层跨平台组件库Mars已正式开源》)。
封面图

IM通讯协议专题学习(二):快速理解Protobuf的背景、原理、使用、优缺点

2022-11-17
阅读 7 分钟
817
Protobuf 作为一种跨平台、语言无关、可扩展的序列化结构数据通讯协议,已广泛应用于网络数据交换的场景中(比如IM通信、分布式RPC调用等)。随着互联网的发展,分布式系统的异构性会愈发突出,跨语言的需求会愈加明显,同时 gRPC 也大有取代Restful之势,而 Protobuf 作为gRPC 跨语言、高性能的法宝,我们技术人有必要...
封面图

即时通讯技术文集(第5期):零基础通信技术入门 [共15篇]

2022-11-11
阅读 3 分钟
537
评语:本系列文章尽量使用最浅显易懂的文字、图片来组织内容,力求通信技术零基础的人群也能看懂。但个人建议,至少稍微了解过网络通信方面的知识后再看,会更有收获。特别推荐即时通讯开发者来阅读,因为针对移动弱网的问题,确实可以找到很多有价值的答案。
封面图

IM通讯协议专题学习(一):Protobuf从入门到精通,一篇就够!

2022-11-11
阅读 10 分钟
1.3k
在当今移动网络时代,手机流量和电量是宝贵的资源,对于移动端最常见的即时通讯IM应用,由于实时通信基于Socket长连接,它对于流量和电量的需求较一般应用来说更高(详见《移动端IM实践:WhatsApp、Line、微信的心跳策略分析》)。在IM应用中,优化数据流量消耗过多的基本方法就是使用高度压缩的通讯协议,而数据压缩后...
封面图

基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v6.1版已发布

2022-11-05
阅读 2 分钟
1.1k
MobileIMSDK 是一套专门为移动端开发的开源IM即时通讯框架,超轻量级、高度提炼,一套API优雅支持UDP 、TCP 、WebSocket 三种协议,支持iOS、Android、H5、标准Java平台,服务端基于Netty编写。
封面图

IM消息ID技术专题(七):网易严选分布式ID的技术选型、优化、落地实践

2022-11-03
阅读 5 分钟
767
在《IM消息ID技术专题》系列文章的前几篇中,我们已经深切体会到消息ID在分布式IM聊天系统中的重要性以及技术实现难度,各种消息ID生成算法及实现虽然各有优势,但受制于具体的应用场景,也并不能一招吃遍天下,所以真正在IM系统中该如何落地消息ID算法和实现逻辑,还是要因地致宜,根据自已系统的设计逻辑和产品定义取...
封面图

即时通讯技术文集(第4期):不为人知的网络编程 [共14篇]

2022-11-01
阅读 2 分钟
653
为了更好地分类阅读52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第4 期。[- 1 -] 不为人知的网络编程(一):浅析TCP协议中的疑难杂症(上篇)[链接] [链接][摘要] 可能大家都知道TCP是三次交互完成连接的建立,四次交互来断开一个连接,那为什么是三次握手和四次挥手呢?反过来不行吗?[- 2 -...
封面图

IM跨平台技术学习(六):网易云信基于Electron的IM消息全文检索技术实践

2022-10-27
阅读 6 分钟
945
在IM客户端的使用场景中,基于本地数据的全文检索功能扮演着重要的角色,最常用的比如:查找聊天记录、联系人等。类似于IM中的聊天记录查找、联系人搜索这类功能,有了全文检索能力后,确实能大大提高内容查找的效率,不然,让用户手动翻找,确实降低了用户体验。本文将要分享的是,网易云信基于Electron的PC端是如何实...
封面图

IM跨平台技术学习(五):融云基于Electron的IM跨平台SDK改造实践总结

2022-10-20
阅读 6 分钟
604
Electron 凭借其相对更低的研发成本投入、强大的跨平台支持、拥有基数庞大的 Javascript 开发者受众等优势,在 PC 端跨平台桌面开发领域异军突起,大受欢迎。本文分享的是融云基于Electron的IM跨平台PC端SDK改造过程中所总结的一些实践经验,希望对你有用。
封面图

即时通讯技术文集(第2期):脑残式网络编程系列 [共12篇]

2022-10-18
阅读 3 分钟
647
[摘要]网络编程中TCP协议的三次握手和四次挥手的问题,在面试中是最为常见的知识点之一。本篇文章尝试使用动画图片的方式,来对这个知识点进行“脑残式”讲解(哈哈),期望读者们可以更加简单、直观地理解TCP网络通信交互的本质。
封面图

IM跨平台技术学习(四):蘑菇街基于Electron开发IM客户端的技术实践

2022-10-13
阅读 10 分钟
650
1、引言本系列文章的前面几篇主要是从Electron技术本身进行了讨论(包括:第1篇初步了解Electron、第2篇进行了快速开始和技术体验、第3篇基于实际开发考虑的技术栈选型等),各位读者也应该对Electron的开发有了较为深入的了解。

移动端IM产品RainbowChat[专业版] iOS端 v6.0版已发布!

2022-10-12
阅读 1 分钟
558
MobileIMSDK 是一套专门为移动端开发的开源IM即时通讯框架,超轻量级、高度提炼,一套API优雅支持UDP 、TCP 、WebSocket 三种协议,支持iOS、Android、H5、标准Java平台,服务端基于Netty编写。
封面图

即时通讯技术周刊(第1期):懒人网络编程系列 [共14篇]

2022-10-08
阅读 3 分钟
662
[摘要] 互联网的核心是一系列协议,总称为"互联网协议"(Internet Protocol Suite)。它们对电脑如何连接和组网,做出了详尽的规定。理解了这些协议,就理解了互联网的原理。本篇将带你从理论上快速理解这些协议。
封面图

IM跨平台技术学习(三):vivo的Electron技术栈选型、全方位实践总结

2022-09-28
阅读 10 分钟
1.1k
在上篇《Electron初体验(快速开始、跨进程通信、打包、踩坑等)》的分享中,我们已经对Electron跨端框架的开发有了大概的了解。本篇将基于vivo技术团队的技术实践,详细阐述了vivo在使用Electron进行跨端桌面开发时的技术栈选型考量,同时分享了在打包构建、版本更新、性能优化、质量保障、安全性等方面的实践方案和踩坑...
封面图

IM跨平台技术学习(二):Electron初体验(快速开始、跨进程通信、打包、踩坑等)

2022-09-22
阅读 9 分钟
1.2k
本篇将带你简单上手Electron框架开发跨平台桌面端,内容包括一个快速开始例子、跨进程通信原理、打包和分发、以及一些典型的技术踩坑等。希望能带给你启发。
封面图

基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v5.0版已发布

2022-09-14
阅读 1 分钟
1.8k
MobileIMSDK 是一套专门为移动端开发的开源IM即时通讯框架,超轻量级、高度提炼,一套API优雅支持UDP 、TCP 、WebSocket 三种协议,支持iOS、Android、H5、标准Java平台,服务端基于Netty编写。
封面图

微信Windows端IM消息数据库的优化实践:查询慢、体积大、文件损坏等

2022-09-06
阅读 7 分钟
1.8k
本文分享的是,微信客户端团队基于对微信用户日常使用场景和数据分析,通过分离重要和非重要数据、采用可靠的分库策略等,对微信Windows端IM本地数据库的架构进行的优化和改造,并最终得到一个具备良好实践效果的技术改造方案。
封面图

即时通讯安全篇(十一):IM聊天系统安全手段之传输内容端到端加密技术

2022-08-31
阅读 8 分钟
1.2k
在上篇《IM聊天系统安全手段之通信连接层加密技术》中,分享了关于通信连接层加密的相关技术和实践,包括在传输即时通信消息时启用 TLS 链路加密(保证消息在到达服务器前无法被窃听和篡改)、使用 CA 认证机制(杜绝中间人攻击)等。本篇将围绕IM传输内容的安全问题,以实践为基础,为你分享即时通讯应用中的“端到端”加...
封面图

即时通讯安全篇(十):IM聊天系统安全手段之通信连接层加密技术

2022-08-24
阅读 5 分钟
1.5k
随着移动互联网的普及,IM即时通讯类应用几乎替代了传统运营商的电话、短信等功能。得益于即时通讯技术的实时性优势,使得人与人之间的沟通和交流突破了空间、时间等等限制,让信息的传递变的无处不在。
封面图

阿里IM技术分享(八):深度解密钉钉即时消息服务DTIM的技术设计

2022-08-17
阅读 14 分钟
1.2k
本文是国内企业IM的事实王者钉钉首次对外深度解密其即时消息服务(即DingTalk IM,简称DTIM)的技术设计实践。本篇文章内容将从模型设计原理到具体的技术架构、最底层的存储模型到跨地域的单元化等,全方位展现了 DTIM 在实际生产应用中所遇到的各种技术挑战及相应的解决方案,希望借本文内容的分享能为国内企业级IM的开...
封面图

vivo手机上的系统级消息推送平台的架构设计实践

2022-08-11
阅读 9 分钟
1.4k
本文内容来自vivo互联网服务器团队李青鑫在“2021 vivo开发者大会”现场的演讲内容整理而成(现场演讲稿可从本文末附件中下载)。本文将要分享的是手机厂商vivo的系统级推送平台在架构设计上的技术实践和总结。这也是目前为止首次由手机厂商分享的自建系统级推送平台的技术细节,我们也得以借此机会一窥厂商ROOM级推送通道...
封面图

Web网页端IM产品RainbowChat-Web的v4.1版已发布

2022-08-06
阅读 2 分钟
927
RainbowChat-Web是一套Web网页端IM系统,是RainbowChat的姊妹产品(RainbowChat是一套基于开源IM聊天框架 MobileIMSDK(Github地址) 的产品级移动端IM系统)。
封面图

直播系统聊天技术(八):vivo直播系统中IM消息模块的架构实践

2022-08-03
阅读 10 分钟
1.6k
IM即时消息模块是直播系统的重要组成部分,一个稳定、有容错、灵活的、支持高并发的消息模块是影响直播系统用户体验的重要因素。本文针对秀场直播,结合我们一年以来通过处理不同的业务线上问题,进行了技术演进式的IM消息模块架构的升级与调整,并据此进行了技术总结、整理成文,希望借此机会分享给大家。在目前大部分...
封面图

基于Netty,从零开发IM(四):编码实践篇(系统优化)

2022-07-25
阅读 7 分钟
1.2k
前两篇《编码实践篇(单聊功能)》、《编码实践篇(群聊功能)》分别实现了控制台版本的IM单聊和群聊的功能。通过前两篇这两个小案例来体验的只是Netty在IM系统这种真实的开发实践,但对比在真实的Netty应用开发当中,本系列的案例是非常的简单的,主要目的其实是让大家可以更好地了解其原理,从而写出更高质量的 Netty ...
封面图

基于Netty,从零开发IM(三):编码实践篇(群聊功能)

2022-07-20
阅读 16 分钟
1.2k
接上两篇《IM系统设计篇》、《编码实践篇(单聊功能)》,本篇主要讲解的是通过实战编码实现IM的群聊功能,内容涉及群聊技术实现原理、编码实践等知识。
封面图

开源即时通讯IM框架 MobileIMSDK v6.2 发布

2022-07-19
阅读 2 分钟
1.1k
本次更新为次要版本更新,进行了若干优化(更新历史详见:码云 Release Nodes)。可能是市面上唯一同时支持 UDP+TCP+WebSocket 三种协议的同类开源IM框架。
封面图

基于Netty,从零开发IM(二):编码实践篇(im单聊功能)

2022-07-13
阅读 11 分钟
1k
补充说明:因为本系列文章主要目的是引导IM初学者在基于Netty的情况下,如何一步一步从零写出IM的逻辑和思维能力,因而为了简化编码实现,本系列中编码实现的客户端都是基于控制台实现的(希望不要被嫌弃),因为理解技术的本质显然比炫酷的外在表现形式更为重要。
封面图

基于Netty,徒手撸IM(一):IM系统设计篇

2022-07-07
阅读 5 分钟
1.6k
这又是一篇基于Netty的IM编码实践文章,因为合成一篇内容太长,读起来太累,所以也就顺着作者的思路分开成4篇,读起来心理压力也就没那么大了。
封面图

一套十万级TPS的IM综合消息系统的架构实践与思考

2022-06-28
阅读 6 分钟
1.1k
1、引言如何设计一款高性能、高并发、高可用的im综合消息平台是很多公司发展过程中会碰到且必须要解决的问题。比如一家公司内部的通讯系统、各个互联网平台的客服咨询系统,都是离不开一款好用且维护的方便im综合消息系统。
封面图