不为人知的网络编程(十六):深入分析与解决TCP的RST经典异常问题

6 月 21 日
阅读 16 分钟
1.2k
1、引言TCP的经典异常问题无非就是丢包和连接中断,在这里我打算与各位聊一聊TCP的RST到底是什么?现网中的RST问题有哪些模样?我们如何去应对和解决?本文将从TCP的RST技术原理、排查手段、现网痛难点案例三个方面,自上而下、循序渐进地给读者带来一套完整的分析方法和解决思路。 技术交流:- 移动端IM开发入门文章:...
封面图

IM跨平台技术学习(十一):环信基于Electron打包Web IM桌面端的技术实践

6 月 14 日
阅读 12 分钟
550
早就听说利用Electron可以非常便捷的将网页端快速打包成桌面应用,并且利用 Electron 提供的 API 调用可以使用原生桌面 API 一些高级功能。于是这次借着论证 Web IM端 SDK 是否可以在 Electron 生成的桌面端正常稳定使用,我决定把官方新推出的 webim-vue3-demo,打包到桌面端,并记录了这次验证的过程以及所遇到的问题...
封面图

即时通讯技术文集(第40期):推送技术合集(Part2) [共18篇]

6 月 12 日
阅读 3 分钟
460
为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第 40 期。[- 1 -] 一个基于长连接的安全可扩展的订阅/推送服务实现思路[链接] [链接][摘要] 本文将从如何保证连接的业务安全(禁止非业务认证的连接订阅消息)和如何扩展能够支持更多的消息和连接两点展开分析。[- 2 -] 实...

社交软件红包技术解密(十三):微信团队首次揭秘微信红包算法,为何你抢到的是0.01元

6 月 7 日
阅读 10 分钟
574
在上一篇《来看看微信十年前的IM消息收发架构,你做到了吗》的文章中,有用户提到想了解自己每次微信红包只能抽中 0.01 元的反向手气最佳是怎么在技术上实现的,于是就有了本篇文章的诞生。其实,微信红包最初在产品设计上有过很多思路,最初曾以多档次、按比例分配的方式,但最后大家试用下来发现还是随机才好玩。那种...
封面图

即时通讯技术文集(第39期):推送技术合集(Part1) [共18篇]

6 月 5 日
阅读 3 分钟
519
为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第 39 期。[- 1 -] iOS的推送服务APNs详解:设计思路、技术原理及缺陷等[链接] [链接][摘要] 本文重点介绍APNs的设计思路、技术原理以及各种缺陷槽点,也希望能给自已设计推送系统的同行带来启发。[- 2 -] 信鸽团队原创:一...

首次公开,最新手机QQ客户端架构的技术演进实践

5 月 31 日
阅读 7 分钟
705
1、引言接上篇《总是被低估,从未被超越,揭秘QQ极致丝滑背后的硬核IM技术优化》,本文则将重点介绍手机 QQ 客户端技术架构升级背后的故事。手机 QQ 经过20多年发展,功能不断增加,代码不断累积,架构已经变得越来越臃肿,影响到协作团队开发效率,对用户体验、质量稳定都有较大风险,因此手机 QQ 亟需技术架构的升级。...
封面图

总是被低估,从未被超越,揭秘QQ极致丝滑背后的硬核IM技术优化

5 月 24 日
阅读 13 分钟
806
最新发布的 QQ 9 自上线以来,流畅度方面收获了众多用户好评,不少用户戏称 QQ 9 “傻快傻快”的,快到“有点不习惯了都”。作为庞大量级的IM应用,QQ 9 从哪些方面做了哪些优化,使得用户能够明显感觉到流畅度的提升?本文将详细介绍 QQ 9 流畅背后的技术实现,以及在全流程做的性能优化探索,为你揭秘QQ极致丝滑背后的硬核...
封面图

即时通讯技术文集(第38期):IM代码入门实践(Part2) [共15篇]

5 月 22 日
阅读 3 分钟
377
为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第38 期。[- 1 -] 高仿Android版手机QQ首页侧滑菜单源码 [附件下载][链接] [链接][摘要] 本文分享的源码高仿了手机QQ的这个效果,希望可以为有相同需求的IM开发者同行节省点撸码时间。[- 2 -] 开源libco库:单机千万连接、...
封面图

B站千万级长连接实时消息系统的架构设计与实践

5 月 17 日
阅读 6 分钟
703
在当今数字娱乐时代,弹幕已经成为直播平台上不可或缺的互动元素之一。用户通过发送弹幕、送礼等,可以实时在直播画面上展现自己的想法、评论和互动内容,从而丰富了用户观看体验。在这个过程中,实时向终端推送互动信息,就需要用到长连接。长连接,顾名思义,是应用存活期间和服务端一直保持的网络数据通道,能够支持...
封面图

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

5 月 10 日
阅读 3 分钟
377
本次更新为次要版本更新,进行了bug修复和优化升级(更新历史详见:码云 Release Notes、Github Release Notes)。MobileIMSDK 可能是市面上唯一同时支持 UDP+TCP+WebSocket 三种协议的同类开源IM框架。轻量级、高度提炼,历经10年、久经考验。客户端支持iOS、Android、Java、H5、微信小程序、Uniapp,服务端基于Netty。

即时通讯技术文集(第37期):IM代码入门实践(Part1) [共16篇]

5 月 8 日
阅读 2 分钟
215
为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第37 期。[- 1 -] 一种Android端IM智能心跳算法的设计与实现探讨(含样例代码)[链接] [链接][摘要] 本文将与大家一起探讨一种更加简单易行和实用的心跳算法,不一定适合所有人,但希望能需要的同行带来一些启发。[- 2 -] ...
封面图

即时通讯安全篇(十四):网络端口的安全防护技术实践

5 月 7 日
阅读 11 分钟
231
随着互联网业务的快速发展,网络攻击的频率和威胁性也在不断增加,端口是互联网络通信中的门户,它是数据进出的必经之路,因此端口安全也逐渐成为了企业内网的重要防线之一。然而网络端口因其数量庞大、端口开放和关闭的影响评估难度大,业务影响程度高、以及异常识别技术复杂度高等特点给网络端口安全防护带来了一定的...
封面图

长连接网关技术专题(十一):揭秘腾讯公网TGW网关系统的技术架构演进

4 月 19 日
阅读 10 分钟
205
TGW全称Tencent Gateway,是一套实现多网统一接入,支持自动负载均衡的系统, 是公司有10+年历史的网关,因此TGW也被称为公司公网的桥头堡。本文从腾讯公网TGW网关系统的应用场景、背景需求讲起,重点解析了从山海1.0架构到山海2.0架构需要解决的问题和架构规划与设计实现,以及对于未来TGW山海网关的发展和演进方向。 ...
封面图

基于开源IM即时通讯框架MobileIMSDK:RainbowChat v11.5版已发布

4 月 17 日
阅读 2 分钟
237
MobileIMSDK 是一套专门为移动端开发的开源IM即时通讯框架,超轻量级、高度提炼,一套API优雅支持UDP 、TCP 、WebSocket 三种协议,支持iOS、Android、H5、小程序、Uniapp、标准Java平台,服务端基于Netty编写。工程开源地址是:1)Gitee码云地址:[链接]2)Github托管地址:[链接]
封面图

即时通讯技术文集(第36期):《跟着源码学IM》系列专题 [共12篇]

4 月 12 日
阅读 3 分钟
321
[摘要] 说到用Netty来开发IM或推送系统,以一个生产级产品的标准来说,最基本的心跳机制、断线重连机制肯定得有吧?好,如果你还不清楚这些,那就看看本文吧!
封面图

微信团队分享:来看看微信十年前的IM消息收发架构,你做到了吗

4 月 11 日
阅读 5 分钟
730
2023 年,微信及 WeChat 的 DAU(月活用户)达到 13.4 亿,微信已经是很多人工作、生活中不可或缺的一个环节。从 2011 年 1 月 21 日上线至今,微信已经走过了 13 个年头,其背后的技术基座与架构也发生了巨大的变化。这些变化背后,所折射的也正是中国互联网高速发展的黄金年代。好的架构是迭代出来的,却也少不了良好...
封面图

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

4 月 7 日
阅读 2 分钟
229
MobileIMSDK 是一套专门为移动端开发的开源IM即时通讯框架,超轻量级、高度提炼,一套API优雅支持 UDP 、TCP 、WebSocket 三种协议,支持 iOS、Android、H5、标准Java、小程序、Uniapp,服务端基于Netty编写。工程开源地址是:1)Gitee码云地址:[链接]2)Github托管地址:[链接]
封面图

IM技术干货:假如你来设计微信的群聊,你该怎么设计?

4 月 7 日
阅读 8 分钟
841
当我那天拿着手机,正在和朋友们的微信群里畅聊着八卦新闻和即将到来的周末计划时,忽然一条带着喜意的消息扑面而来,消息正中间写着八个大字:恭喜发财,大吉大利。抢红包!!相信大部分人对此都不陌生,微信的这个群聊系统可以方便地聊天、分享图片和表情,还有那个神奇的红包功能。微信作为 10 亿用户级别的全民 App...
封面图

大型IM工程重构实践:企业微信Android端的重构之路

4 月 1 日
阅读 10 分钟
492
企业微信本地部署版(下文简称为本地版)是从2017年起,脱胎于企业微信的一款产品。本地版的后台服务能独立部署在政府或者大型企业的本地服务器上。在一个已经迭代了7年的大型Android端工程中,企业微信本地版不可避免地会暴露出一些遗留系统的特点。本文将探讨我们在大型IM工程实践中采用的一些行之有效的重构方法和实...
封面图

微信团队分享:微信后端海量数据查询从1000ms降到100ms的技术实践

3 月 22 日
阅读 6 分钟
537
1、引言微信的多维指标监控平台,具备自定义维度、指标的监控能力,主要服务于用户自定义监控。作为框架级监控的补充,它承载着聚合前 45亿/min、4万亿/天的数据量。当前,针对数据层的查询请求也达到了峰值 40万/min,3亿/天。较大的查询请求使得数据查询遇到了性能瓶颈:查询平均耗时 > 1000ms,失败率居高不下。针...
封面图

陌陌技术分享:陌陌IM在后端KV缓存架构上的技术实践

3 月 15 日
阅读 7 分钟
346
本文由冀浩东分享,原题“单核QPS近6000S,陌陌基于OceanBase的持久化缓存探索与实践”,为了阅读便利,本文进行了排版和内容优化等。
封面图

长连接网关技术专题(十):百度基于Go的千万级统一长连接服务架构实践

3 月 8 日
阅读 9 分钟
948
1、引言移动互联网时代,长连接服务成为了提升应用实时性和互动性的基础服务。本文将介绍百度基于golang实现的统一长连接服务,从统一长连接功能实现和性能优化等角度,描述了其在设计、开发和维护过程中面临的问题和挑战,并重点介绍了解决相关问题和挑战的方案和实践经验。* 关联文章:《百度统一socket长连接组件从0...
封面图

抖音技术分享:飞鸽IM桌面端基于Rust语言进行重构的技术选型和实践总结

3 月 1 日
阅读 7 分钟
491
1、引言本文将介绍飞鸽IM前端团队如何结合Rust对飞鸽客户端接待能力进行的技术提升,一步步从概念验证、路径分解到分工开发,再到最后上线收益论证,并分享了其中遇到的技术挑战与经验总结等。本项目是一个长周期的复杂项目,相信本项目落地的经验对其他同学及团队能有所借鉴。技术交流:
封面图

即时通讯技术文集(第34期):IM群聊技术合集(Part1) [共15篇]

2 月 28 日
阅读 3 分钟
748
[摘要] 2个月的开发时间,微信后台系统经历了从0到1的过程。从小步慢跑到快速成长,经历了平台化到走出国门,微信交出的这份优异答卷,解题思路是怎样的?
封面图

即时通讯技术文集(第33期):IM开发综合技术合集(Part6) [共12篇]

2 月 22 日
阅读 2 分钟
387
[摘要] 本文将重点讨论的是“关注”功能对应的技术实现:先总结常用的基于时间线Feed流的后台技术实现方案,再结合具体的业务场景,根据实际需求在基本设计思路上做一些灵活的运用。
封面图

长连接网关技术专题(九):去哪儿网酒店高性能业务网关技术实践

2 月 21 日
阅读 9 分钟
646
本文针对去哪儿网酒店业务网关的吞吐率下降、响应时间上升等问题,进行全流程异步化、服务编排方案等措施,进行了高性能网关的技术优化实践。技术交流:
封面图

得物从零构建亿级消息推送系统的送达稳定性监控体系技术实践

1 月 25 日
阅读 6 分钟
562
本文分享的是得物针对现有的消息推送系统的消息送达耗时、实时性、稳定性等方面问题,从零到一构建完整的消息推送质量监控体系和机制的技术实践。  技术交流:
封面图

百度基于金融场景构建高实时、高可用的分布式数据传输系统的技术实践

1 月 19 日
阅读 8 分钟
390
1、引言分布式数据传输系统是一种用于在多个计算节点之间高效传输大量数据的系统,诣在高效的解决大规模数据迁移、备份、跨地域复制等问题。其广泛应用在实时数据流传输、跨数据中心数据迁移、多媒体传输等场景,在大多数企业中的日志管理、业务数据建库等场景中也都会使用到。众所周知,数据的高效传输往往直接影响着企...
封面图

即时通讯技术文集(第32期):IM开发综合技术合集(Part5) [共12篇]

1 月 17 日
阅读 2 分钟
311
为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第32 期。[- 1 -] IM开发干货分享:如何优雅的实现大量离线消息的可靠投递[链接] [链接][摘要] 本文作者将以自已IM开发过程中的真实总结,分享针对大量离线聊天消息,在确保用户端体验不降级的前提下,保证离线消息的可靠投...
封面图

IM跨平台技术学习(十):快速对比跨平台框架Electron、Flutter、Tauri、React Native等

1 月 16 日
阅读 5 分钟
1.6k
1、引言在当今快速发展的技术环境中,对跨平台桌面应用程序的需求正在不断激增。开发人员面临着选择正确框架之挑战,以便可以高效构建可在 Windows、macOS 和 Linux 上无缝运行的应用程序。在本文中,我们将比较五种流行的桌面应用程序开发框架:Electron、Flutter、Tauri、React Native 和 Qt,希望可以帮助你根据项目...
封面图