Jack Jiang

我的最新工程MobileIMSDK:http://git.oschina.net/jackjiang/MobileIMSDK
posts - 471, comments - 13, trackbacks - 0, articles - 1

2024年10月16日

     摘要: 本文由小白debug分享,原题“能 ping 通,TCP 就一定能连通吗?”,下文进行了排版和内容优化。1、引言平时,我们想要知道,自己的机器到目的机器之间,网络通不通,一般会执行ping命令。一般对于状况良好的网络来说,你能看到它对应的loss丢包率为0%,也就是所谓的能ping通。如果看到丢包率100%,也就是ping不通。▲ ping正常▲ p...  阅读全文

posted @ 2024-12-19 11:29 Jack Jiang 阅读(27) | 评论 (0)编辑 收藏

本文由转转QA刘宝成分享,原题“抓包工具wireshark的使用”,下文进行了排版和内容优化。

1、引言

跟网络通信有关的应用场景下(比如Web系统、IM聊天应用、消息推送系统等),经常要用到网络抓包工具,用以验证客户端和服务器之间收发的数据包是否正确。以IM聊天系统为例,TLS/SSL加密开启到底有没有成功?加密效果怎么样?端到端加密后的聊天内容安全强度够不够?等等这些疑问,都需要通过网络抓包抓出样本来分析和验证。

Wireshark是一款开源和跨平台的抓包工具。它通过调用操作系统底层的API,直接捕获网卡上的数据包,因此捕获的数据包详细、功能强大。但Wireshark本身稍显复杂,本文将以用抓包实例,手把手带你一步步用好Wireshark,并真正理解抓到的数据包的各项含义。

 
 

2、系列文章

本文是系列文章中的第16篇,本系列文章的大纲如下:

网络编程懒人入门(一):快速理解网络通信协议(上篇)

网络编程懒人入门(二):快速理解网络通信协议(下篇)

网络编程懒人入门(三):快速理解TCP协议一篇就够

网络编程懒人入门(四):快速理解TCP和UDP的差异

网络编程懒人入门(五):快速理解为什么说UDP有时比TCP更有优势

网络编程懒人入门(六):史上最通俗的集线器、交换机、路由器功能原理入门

网络编程懒人入门(七):深入浅出,全面理解HTTP协议

网络编程懒人入门(八):手把手教你写基于TCP的Socket长连接

网络编程懒人入门(九):通俗讲解,有了IP地址,为何还要用MAC地址?

网络编程懒人入门(十):一泡尿的时间,快速读懂QUIC协议

网络编程懒人入门(十一):一文读懂什么是IPv6

网络编程懒人入门(十二):快速读懂Http/3协议,一篇就够!

网络编程懒人入门(十三):一泡尿的时间,快速搞懂TCP和UDP的区别

网络编程懒人入门(十四):到底什么是Socket?一文即懂!

网络编程懒人入门(十五):外行也能读懂的网络硬件设备功能原理速成

网络编程懒人入门(十六):手把手教你使用网络编程抓包神器Wireshark(* 本文)

3、Wireshak的安装和基本使用

安装:直接通过官方下载对应的安装包即可 https://www.wireshark.org/download.html

使用:

如上图所示:

  • 1)左上角为几个最常用的按钮:开始捕获、停止捕获、重新捕获、捕获选项;
  • 2)中间为捕获过滤器,用于过滤需要捕获的数据包;
  • 3)捕获过滤器下面可以选择需要捕获的网络连接。

下图是用Wireshark捕获的数据包:

可以看到,数据包结构是与OSI的七层模型相对应的,会详细显示每层的信息。

更多Wireshak的基本用法和手册,可以详读以下两篇:

  1. 理论联系实际:Wireshark抓包分析TCP 3次握手、4次挥手过程
  2. 网络通讯数据抓包和分析工具 Wireshark 使用教程(中文) [附件下载]

4、快速理解Wireshak的过滤器

由于Wireshark直接捕获底层网络数据包,导致其捕获的数据包数量通常较大。为了便于筛选数据包,Wireshark提供了两种过滤器。

4.1捕获过滤器

用于设置什么样的数据包保存在捕获结果中,避免产生过大的日志文件。

需要在开始捕获之前设置,相对简单:

捕获过滤器语法如上,一般用于过滤协议、IP、端口等基本信息。

例如:

  • 1)显示目的TCP端口为8080的包:tcp dst port 8080
  • 2)显示来源IP地址为192.168.171.201的封包:ip src host 192.168.171.201

4.2显示过滤器

用于在捕获日志中查找数据包,可以在捕获过程中或者捕获后随时更改。

功能更加强大和复杂:

显示过滤器语法如上,比捕获过滤器更为强大,可以针对不同协议,过滤不同的字段。

例如:

  • 1)源地址是192.168.171.0网段的数据包:ip.src == 192.168.171.0/24
  • 2)所有的HTTP POST请求:http.request.method== "POST"
  • 3)显示包含TCP SYN标志的包:tcp.flags.syn == 0×02
  • 4)URL中包含baidu的http请求:http.request.uri contains "baidu"

5、用什么例子来动手学习Wireshak?

本来想借用RainbowChat 这种IM聊天中的TLS/SSL数据包来的分析来实战Wireshak,但考虑到IM通常都是私有协议,不利于理解。

因而接下来的内容将以HTTPS为例,来详细讲解如何借助Wireshak抓出的数据包(正好也顺验证之前那么多跟TLS/SSL加密有关的文章),详细理解和学习Wireshak的使用,同进加深对HTTPS协议本身的理解。

6、什么是HTTPS

SSL/TLS:SSL (Secure Sockets Layer),最初由Netscape公司设计,后来逐渐演变为TLS(Transport Layer Security Protocol),即“传输层安全协议”。

该协议工作在TCP层之上,应用层之下。在TCP连接完成后,进行通信双方的身份认证,并协商一些跟加密相关的工作。完成协商之后,就可以对双方发送的信息进行加密/解密了。

HTTPS:可以理解为HTTP over SSL/TLS。即在SSL/TLS协议之上运行HTTP协议,以保证通信的安全性。

更多深入的学习,可以从下面这几篇精选的资料开始:

  1. 如果这样来理解HTTPS原理,一篇就够了
  2. 你知道,HTTPS用的是对称加密还是非对称加密?
  3. 为什么要用HTTPS?深入浅出,探密短连接的安全性
  4. 一分钟理解 HTTPS 到底解决了什么问题
  5. 一篇读懂HTTPS:加密原理、安全逻辑、数字证书等

7、HTTPS的SSL/TLS握手过程

SSL/TLS的握手过程主要需要解决两个问题:

  • 1)证明通信双方身份的真实性;
  • 2)协商后续通信过程中使用的密钥;

如下图所示:左侧是一个简单的握手流程,右侧为对应的抓包结果,我们可以对比分析一下SSL/TLS的握手过程。

1)C:ClientHello

客户端发送协议版本号、sessionid、随机数、加密算法列表、扩展字段等信息:

2)S:ServerHello

与客户端类似,不同之处在于确定了所使用的加密算法等:

3)S:Certificate

服务端向客户端发送自己的CA证书。客户端通过证书信任链查看该证书的真实性,以验证服务端的身份。其实SSL/TLS协议还支持客户端的CA证书验证,不过在实际中使用较少。

4)S:ServerKey Exchange

服务端根据之前选择的加密算法,传输密钥协商需要的参数。从之前的报文可以看到,这里选择的是EC-DH算法。

5)S:ServerHello Done

该报文表示服务端发送完成。

6)C:ClientKey Exchange

同理,客户端也要根据之前选择的加密算法,传输相应的参数。

7)C:ChangeCipher Spec

经过上述步骤,客户端和服务器双方已经完成了身份认证,并且交换了生成密钥的全部参数。双方会根据对应的算法,各自生成加密密钥,然后就可以进行加密通信了。这个报文表示切换到密文模式,后续消息都通过加密传输。

8)C:Finished

客户端表示握手完成。这里会发送一段Verify Data,是使用新生成的密钥加密后的一段信息。双方通过该信息验证加密算法、密钥是否有效。

9)S:Change Cipher Spec

10)S:Finished

服务段也会发送对应的两条消息作为回应,不再赘述。

8、解密HTTPS报文

握手完成之后,就可以查看客户端发出的HTTP请求了。但我们看到的只是一段加密后的字符串?那么如何对HTTPS报文进行解密呢?

要想解密HTTPS报文,就必须要获取到加密密钥。Chrome、Firefox等浏览器支持将访问网站时使用的密钥输出到文件中。仅需要配置环境变量SSLKEYLOGFILE 即可。

如下:

然后需要将该密钥文件导入到Wireshark中。打开编辑-首选项,选择Protocol-SSL,填写刚才设置的文件路径。

现在,就可以通过Wireshark查看HTTPS请求中的具体信息了!

9、参考资料

[1] TCP/IP详解 - 第17章·TCP:传输控制协议

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

[3] 理论联系实际:Wireshark抓包分析TCP 3次握手、4次挥手过程

[4] 网络通讯数据抓包和分析工具 Wireshark 使用教程(中文) [附件下载]

[5] 如果这样来理解HTTPS原理,一篇就够了

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

[7] 为什么要用HTTPS?深入浅出,探密短连接的安全性

[8] 一分钟理解 HTTPS 到底解决了什么问题

[9] 一篇读懂HTTPS:加密原理、安全逻辑、数字证书等

[10] IM聊天系统安全手段之通信连接层加密技术

[11] IM聊天系统安全手段之传输内容端到端加密技术

[12] 传输层安全协议SSL/TLS的Java平台实现简介和Demo演示

[13] 微信新一代通信安全解决方案:基于TLS1.3的MMTLS详解

[14] 手把手教你为基于Netty的IM生成自签名SSL/TLS证书


(本文已同步发布于:http://www.52im.net/thread-4752-1-1.html

posted @ 2024-12-12 11:24 Jack Jiang 阅读(49) | 评论 (0)编辑 收藏

     摘要: 本文由转转技术团队刘筱雨分享,原题“一文读懂浏览器本地存储:Web Storage”,下文进行了排版和内容优化。1、引言鉴于目前浏览器技术的进步(主要是HTML5的普及),在Web网页端IM聊天应用的技术选型阶段,很多开发者都会纠结到底该不该像原生移动端IM那样将聊天记录缓存在浏览器的本地,还是像传统Web端即时通讯那样继续存储在服务端?本文将为你简洁明了地讲清楚浏览器本地...  阅读全文

posted @ 2024-11-28 11:00 Jack Jiang 阅读(65) | 评论 (0)编辑 收藏

为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第44 期。

[-1-]  微信朋友圈千亿访问量背后的技术挑战和实践总结

[链接] http://www.52im.net/thread-1569-1-1.html

[摘要] 朋友圈的数据是永远存储的,而且随着业务的快速发展,存储容量、带宽和设备的消耗大量增加,尤其重大节日带来的使用量增长,更加剧了消耗,也给运维人员的保障带来了巨大压力。


[-2-] 腾讯技术分享:腾讯是如何大幅降低带宽和网络流量的(图片压缩篇)

[链接] http://www.52im.net/thread-1559-1-1.html

[摘要] 本次文章跟大家分享如何在保障质量(指的是图片质量、音视频质量)前提下所做的带宽和网络流量压缩,进而达到运营成本的优化。


[-3-] 腾讯技术分享:腾讯是如何大幅降低带宽和网络流量的(音视频技术篇)

[链接] http://www.52im.net/thread-1560-1-1.html

[摘要] 本文接上篇《腾讯技术分享:腾讯是如何大幅降低带宽和网络流量的(图片压缩篇)》,继续腾讯公司分享如何在保障质量(指的是图片质量、音视频质量)前提下所做的带宽和网络流量压缩,进而达到运营成本的优化。


[-4-] IM全文检索技术专题(二):微信移动端的全文检索多音字问题解决方案

[链接] http://www.52im.net/thread-1545-1-1.html

[摘要] 本文重点讲述微信安卓客户端在SQLite FTS5的基础上,多音字问题的解决方案。


[-5-] 腾讯技术分享:Android版手机QQ的缓存监控与优化实践

[链接] http://www.52im.net/thread-1524-1-1.html

[摘要] 对于Android应用来说,内存向来是比较重要的性能指标。内存占用过高,会影响应用的流畅度,甚至引发OOM,非常影响用户体验。因此,内存优化也向来是行业内的重点工作项和难点工作项。


[--] 微信团队分享:iOS版微信的高性能通用key-value组件技术实践

[链接] http://www.52im.net/thread-1461-1-1.html

[摘要] 本文要分享的是iOS版微信内部正在推广和使用的一个高性能通用key-value 组件的技术实践过程,该组件在微信内部被命名为MMKV(以下简称MMKV)。


[-7-] 微信团队分享:iOS版微信是如何防止特殊字符导致的炸群、APP崩溃的?

[链接] http://www.52im.net/thread-1449-1-1.html

[摘要] 一般来说,特殊字符闪退是系统漏洞引起,只要更新系统就行。但大部分用户不愿意更新系统,而苹果也不一定第一时间解决问题。另外后台可以拦截恶意文本传递,但对于本地已下发的消息,后台没有办法让它删除。所以客户端还是要做些保护预防特殊字符闪退。


[-8-] 腾讯技术分享:Android手Q的线程死锁监控系统技术实践

[链接] http://www.52im.net/thread-1442-1-1.html

[摘要] 本文将详细介绍Android版手Q中这套线程卡死监控系统设计思路以及技术实践总结。


[-9 -]  微信团队原创分享:iOS版微信的内存监控系统技术实践

[链接] http://www.52im.net/thread-1422-1-1.html

[摘要] 二期版本以Instruments的Allocations为参考,着重四个方面优化,分别是数据收集、存储、上报及展现。


[-10-] 让互联网更快:新一代QUIC协议在腾讯的技术实践分享

[链接] http://www.52im.net/thread-1407-1-1.html

[摘要] 本文主要介绍 QUIC 协议在腾讯内部及腾讯云上的实践和性能优化,新一代的互联网协议需要大家一起努力推动,你准备好了吗?


[-11 -] iOS后台唤醒实战:微信收款到账语音提醒技术总结

[链接] http://www.52im.net/thread-1404-1-1.html

[摘要] 本文借此总结了iOS平台上的APP后台唤醒和语音合成、播放等一系列技术开发过程中遇到的坑和小技巧,希望与您分享。


[-12 -] 腾讯技术分享:社交网络图片的带宽压缩技术演进之路

[链接] http://www.52im.net/thread-1391-1-1.html

[摘要] 为了进一步降低运营带宽成本,减小用户访问流量及提升页面加载速度,社交网络 CDN运维紧跟行业图片优化趋势,创新引入WebP、SharpP、自适应分辨率、Guetzli等图像压缩技术到现网,经过三年多的多部门联合攻关,已逐渐形成一套覆盖全图片类型(JPEG、JPG、PNG、WebP、GIF)多场景的图片压缩运营体系,适用于各类型终端,每年节约外网带宽几百G。


[-13 -] 微信团队分享:视频图像的超分辨率技术原理和应用场景

[链接] http://www.52im.net/thread-1377-1-1.html

[摘要] 本文试着讲述超分辨率技术的正确打开方式,浅谈视频图像的超分辨率技术的基本概念和应用场景等问题。


[-14 -] 微信团队分享:微信每日亿次实时音视频聊天背后的技术解密

[链接] http://www.52im.net/thread-1311-1-1.html

[摘要] 本文将为大家介绍微信实时音视频聊天在不同发展阶段的各个关键视频技术环节采用的方案,同时分享在实时音视频聊天中的视频编码器研发的方法和经验。


👉52im社区本周新文:《Web端IM聊天消息该不该用浏览器本地存储?一文即懂!》,欢迎阅读!👈

我是Jack Jiang,我为自已带盐!https://github.com/JackJiang2011/MobileIMSDK/

posted @ 2024-11-27 11:06 Jack Jiang 阅读(53) | 评论 (0)编辑 收藏

     摘要: 本文由得物技术WWQ分享,原题“基于IM场景下的Wasm初探:提升Web应用性能”,下文进行了排版和内容优化。1、什么是WasmWasm,全称 WebAssembly,官网描述是一种用于基于堆栈的虚拟机的二进制指令格式。Wasm被设计为一个可移植的目标,用于编译C/C++/Rust等高级语言,支持在Web上部署客户端和服务器应用程序。简单的来说,Wasm就是使用C...  阅读全文

posted @ 2024-11-21 12:56 Jack Jiang 阅读(69) | 评论 (0)编辑 收藏

为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第 43 期。

[-1-] 直播系统聊天技术(一):百万在线的美拍直播弹幕系统的实时推送技术实践之路

[链接] http://www.52im.net/thread-1236-1-1.html

[摘要] 直播弹幕指直播间的用户,礼物,评论,点赞等消息,是直播间交互的重要手段。美拍直播弹幕系统从 2015 年 11 月到现在,经过了三个阶段的演进,目前能支撑百万用户同时在线。比较好地诠释了根据项目的发展阶段进行平衡演进的过程。这三个阶段分别是快速上线、高可用保障体系建设、长连接演进。具体我将在正文中展开,请继续往下阅读。


[-2-] 直播系统聊天技术(二)阿里电商IM消息平台,在群聊、直播场景下的技术实践

[链接] http://www.52im.net/thread-3252-1-1.html

[摘要] 本文来自淘宝消息业务团队的技术实践分享,分析了电商IM消息平台在非传统IM应用场景下的高发并、强互动群聊和直播业务中的技术特点,总结并分享了在这些场景下实现大量多对多实时消息分发投递的一些架构方面的设计实践。


[-3-] 直播系统聊天技术(三):微信直播聊天室单房间1500万在线的消息架构演进之路

[链接] http://www.52im.net/thread-3376-1-1.html

[摘要] 本文将回顾微信直播聊天室单房间海量用户同时在线的消息组件技术设计和架构演进,希望能为你的直播聊天互动中的实时聊天消息架构设计带来启发。


[-4-] 直播系统聊天技术(四):百度直播的海量用户实时消息系统架构演进实践

[链接] http://www.52im.net/thread-3515-1-1.html

[摘要] 本文主要分享的是百度直播的消息系统的架构设计实践和演进过程。


[-5-] 直播系统聊天技术(五):微信小游戏直播在Android端的跨进程渲染推流实践

[链接] http://www.52im.net/thread-3594-1-1.html

[摘要] 微信小游戏出于性能和安全等一系列考虑,运行在一个独立的进程中,在该环境中不会初始化视频号直播相关的模块。这就意味着小游戏的音视频数据必须跨进程传输到主进程进行推流,给我们实现小游戏直播带来了一系列挑战。


[-6-] 直播系统聊天技术(六):百万人在线的直播间实时聊天消息分发技术实践

[链接] http://www.52im.net/thread-3799-1-1.html

[摘要] 本文将基于融云在直播技术实践的背景,分享了单直播间百万用户在线量的实时消息分发的技术经验总结,希望带给你启发。


[-7-] 直播系统聊天技术(七):直播间海量聊天消息的架构设计难点实践

[链接] http://www.52im.net/thread-3835-1-1.html

[摘要] 本文将主要从高可用、弹性扩缩容、用户管理、消息分发、客户端优化等角度,分享直播间海量聊天消息的架构设计技术难点的实践经验。


[-8-] 视频直播技术干货(十一):超低延时视频直播技术的演进之路

[链接] http://www.52im.net/thread-4587-1-1.html

[摘要] 本文将带您了解超低延时视频直播技术的优化和演进历程。


[-9 -]  视频直播技术干货(十二):从入门到放弃,快速学习Android端直播技术

[链接] http://www.52im.net/thread-4714-1-1.html

[摘要] 本文详细介绍了Android端直播技术的全貌,涵盖了从实时音视频采集、编码、传输到解码与播放的各个环节。文章还探讨了直播中音视频同步、编解码器选择、传输协议以及直播延迟优化等关键问题。希望本文能为你提供有关Andriod端直播技术的深入理解和实践指导。


[-10-] 海量实时消息的视频直播系统架构演进之路(视频+PPT)[附件下载]

[链接] http://www.52im.net/thread-1562-1-1.html

[摘要] 本次主要分享的是融云视频直播互动平台的实时消息可靠性的设计方案,支撑无上限消息并发的架构演进,单机吞吐性能的优化历程。


[-11 -] YY直播在移动弱网环境下的深度优化实践分享(视频+PPT)[附件下载]

[链接] http://www.52im.net/thread-1379-1-1.html

[摘要] 本次分享介绍了 YY 直播针对质量较差网络(简称弱网)的环境,基于数据分析,在客户端和云端所采取的一系列技术手段。 同时,就如何改善上下行网络环境,也给出自己的一些解决方案。


[-12 -] 从0到1:万人在线的实时音视频直播技术实践分享(视频+PPT) [附件下载]

[链接] http://www.52im.net/thread-213-1-1.html

[摘要] 本次分享由“跟谁学”CTO带来,介绍跟谁学的团队是怎样在很短的时间内,构建了一个支持万人实时音视频直播的在线教室。


[-13 -] 在线音视频直播室服务端架构最佳实践(视频+PPT) [附件下载]

[链接] http://www.52im.net/thread-196-1-1.html

[摘要] 本期演讲嘉宾将为大家带来金山视频云在社交直播场景的支撑技术架构和优化方案。


👉52im社区本周新文:《Wasm在即时通讯IM场景下的Web端应用性能提升初探》,欢迎阅读!👈

我是Jack Jiang,我为自已带盐!https://github.com/JackJiang2011/MobileIMSDK/

posted @ 2024-11-20 11:34 Jack Jiang 阅读(73) | 评论 (0)编辑 收藏

     摘要: 本文由携程技术团队Aaron分享,原题“干货 | 携程弱网识别技术探索”,下文进行了排版和内容优化。1、引言网络优化一直是移动互联网时代的热议话题,弱网识别作为移动端弱网优化的第一步,受到的关注和讨论也是最多的。本文从方案设计、代码开发到技术落地,详尽的分享了携程在移动端弱网识别方面的实践经验,如果你也有类似需求,这篇文章会是一个不错的实操指南。技术交流:- 移动端IM开发...  阅读全文

posted @ 2024-11-14 11:14 Jack Jiang 阅读(67) | 评论 (0)编辑 收藏

为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第42 期。

[-1-] 实时音频的混音在视频直播中的技术原理和实践总结

[链接] http://www.52im.net/thread-1904-1-1.html

[摘要] 今天,我们就来聊一聊混音技术在视频直播应用中的实现原理、方案等,及其在创新玩法中的实践应用。


[-2-] 七牛云技术分享:使用QUIC协议实现实时视频直播0卡顿!

[链接] http://www.52im.net/thread-1406-1-1.html

[摘要] 不做任何开发,就能实现弱网环境下实现实时视频直播零卡顿,听上去是不是天方夜谭?看完这篇文章你就知道,我们是如何做到的。


[-3-] 近期大热的实时直播答题系统的实现思路与技术难点分享

[链接] http://www.52im.net/thread-1369-1-1.html

[摘要] 我们首先分析一下直播答题和传统直播在技术上的不同,然后深度解释一下直播答题解决方案的海量并发派题和收题。


[-4-] P2P技术如何将实时视频直播带宽降低75%?

[链接] http://www.52im.net/thread-1289-1-1.html

[摘要] 那整个系统是怎么设计的?使用了哪些技术来达成目标?接下来我来重点分享一下架构设计和技术细节。


[-5-] 网易云信实时视频直播在TCP数据传输层的一些优化思路

[链接] http://www.52im.net/thread-1254-1-1.html

[摘要] 网易云信的实时视频直播目前使用了TCP进行传输,且基于此,从编码动态适配、发送队列调整、协议优化、socket等做了全流程的优化,确保在限带宽、丢包、时延、抖动,无论单项还是复杂网络,都有非常不错的实际体验。


[--] 首次披露:快手是如何做到百万观众同场看直播仍能秒开且不卡顿的?

[链接] http://www.52im.net/thread-1033-1-1.html

[摘要] 快手拥有5亿注册用户,单个直播间人数峰值已经超过180万,他们针对海量用户,基于大数据技术,在首屏和流畅度优化上做了大量的探索与实践。快手直播是如何设计全链路质量监控方案、如何搭建大数据处理Pipeline 、如何解决开播跳帧、首屏卡顿优化等问题的?本文干货满满,全面解密快手直播大数据技术架构与优化实践。


[-7-] 浅谈实时音视频直播中直接影响用户体验的几项关键技术指标

[链接] http://www.52im.net/thread-953-1-1.html

[摘要] 这两年互联网领域的一个热门关键词就是实时音视频直播,从刚开始的游戏直播和秀场娱乐开始,实时音视频直播带来了远超传统互动的用户体验,现在实时音视频直播已逐渐深入当今主流的互联网应用形态里。我们将逐一分析和总结实时音视频直播中的这几个重要技术指标。


[-8-] 技术揭秘:支持百万级粉丝互动的Facebook实时视频直播

[链接] http://www.52im.net/thread-541-1-1.html

[摘要] 在这篇文章中,我们将粗略地看一下我们在每次发布时解决的问题,我还将向你解释我们为负载均衡和 RTMP 实现问题所选择的解决方案。


[--]  移动端实时视频直播技术实践:如何做到实时秒开、流畅不卡

[链接] http://www.52im.net/thread-530-1-1.html

[摘要] 本次分享将为大家揭开移动端实时音视频直播核心技术的神秘面纱。


[-10-] 实现延迟低于500毫秒的1080P实时音视频直播的实践分享

[链接] http://www.52im.net/thread-528-1-1.html

[摘要] 实时视频直播是很多技术团队及架构师关注的问题,在实时性方面,大部分直播是准实时的——存在 1-3 秒延迟。本文由袁荣喜分享其将1080P高清实时视屏直播延迟控制在 500ms 的背后的技术挑战以及实践结论等,期待与各同行共同讨论、学习和进步。


[-11 -] 浅谈开发实时视频直播平台的技术要点

[链接] http://www.52im.net/thread-475-1-1.html

[摘要] 现在大大小小的公司,甚至个人开发者,都想开发自己的直播网站或App,本文会帮你理清,开发视频直播平台,你需要注意哪些技术要点。


[-12 -] 海量用户IM聊天室的架构设计与实践

[链接] http://www.52im.net/thread-4404-1-1.html

[摘要] 本文将分享网易云信针对海量用户IM聊天室的架构设计与应用实践,希望能带给你启发。


[-13 -] 微信团队分享:详解iOS版微信视频号直播中因帧率异常导致的功耗问题

[链接] http://www.52im.net/thread-4507-1-1.html

[摘要] 功耗优化一直是 app 性能优化中让人头疼的问题,尤其是在直播这种用户观看时长特别久的场景。怎样能在不影响主体验的前提下,进一步优化微信iOS端视频号直播的功耗占用,本文给出了一个不太一样的答案。


👉52im社区本周新文:《移动端弱网优化专题(十四):携程APP移动网络优化实践(弱网识别篇)》,欢迎阅读!👈

我是Jack Jiang,我为自已带盐!https://github.com/JackJiang2011/MobileIMSDK/

posted @ 2024-11-13 11:58 Jack Jiang 阅读(62) | 评论 (0)编辑 收藏

     摘要: 本文由微信后台Astra项目团队分享,原题“Ray在微信AI计算中的大规模实践”,下文进行了排版和内容优化。1、引言微信存在大量AI计算的应用场景,主要分为三种:流量分发、产品运营和内容创作。流量分发场景中的 AI 计算主要用于搜索、广告、推荐场景的核心特征生产,产品运营相关的 AI 计算主要用于产品功能相关和内容运营相关(低质、优质、生态建设),由于大模型的兴起,AIGC...  阅读全文

posted @ 2024-11-07 11:07 Jack Jiang 阅读(79) | 评论 (0)编辑 收藏

     摘要: 本文来自微信团队工程师张文瑞的技术分享,由InfoQ编辑发布,下文有修订和改动。原文地址:infoq.cn/article/1-billion-bonus-from-the-clouds,感谢原作者的分享。一、引言与传统意义上的红包相比,手机端的红包似乎更符合现在年轻一代的习惯。这其中,以春节发红包最为流行。以微信为例,除夕全天微信用户红包总发送量可以达到百亿个,红包峰值收发量为比百万个/秒。本文...  阅读全文

posted @ 2024-11-06 11:52 Jack Jiang 阅读(62) | 评论 (0)编辑 收藏

     摘要: 本文由LearnLHC分享,原始出处:blog.csdn.net/LearnLHC/article/details/115268028,本文进行了排版和内容优化。1、引言熟悉网络编程的(尤其搞实时音视频聊天技术的)同学们都有个约定俗成的主观论调,一提起UDP和TCP,马上想到的是UDP没有TCP可靠,但UDP肯定比TCP高效。说到UDP比TCP高效,理由是什么呢?事实真是这样吗?跟着本文咱们一探究...  阅读全文

posted @ 2024-10-30 11:31 Jack Jiang 阅读(68) | 评论 (0)编辑 收藏

关于MobileIMSDK

MobileIMSDK 是一套专门为移动端开发的开源IM即时通讯框架,超轻量级、高度提炼,一套API优雅支持 UDP 、TCP 、WebSocket 三种协议,支持 iOS、Android、H5、标准Java、小程序、Uniapp,服务端基于Netty编写。

工程开源地址是:

关于RainbowChat

► 详细产品介绍:http://www.52im.net/thread-19-1-1.html
► iOS端更新记录:http://www.52im.net/thread-2735-1-1.html
► 全部运行截图:iOS端全部运行截图 (另:Android端运行截图 点此查看
► 在线体验下载:App Store安装地址 (另:Android端下载体验 点此查看

 

RainbowChat是一套基于开源IM聊天框架 MobileIMSDK 的产品级移动端IM系统。RainbowChat源于真实运营的产品,解决了大量的屏幕适配、细节优化、机器兼容问题(可自行下载体验:专业版下载安装)。

RainbowChat可能是市面上提供im即时通讯聊天源码的,唯一一款同时支持TCP、UDP两种通信协议的IM产品(通信层基于开源IM聊天框架 MobileIMSDK 实现)。

v9.1 版更新内容

此版更新内容更多历史更新日志):

  • 1)[bug] 解决了与Web产品互通时,收到撤回被引用消息的指令时会崩溃的问题;
  • 2)[bug] 解决了“查换用户”界面中精确查找时,输入内容时会导致底部按钮等控件显示高度被错误改变的问题;
  • 3)[bug] 解决了聊天输入框中自定义表情和数字、英文混输时,表情图标会消失的问题;
  • 4)[优化] 更换了位置消息中的高德地图AppKey,解决每日调用量限制问题;
  • 5)[优化] 优化了首页“消息”列表中单聊类型未正确同步时的收发消息和点击后的处理逻辑;
  • 6)[优化] 聊天消息自动识别电话、网址、邮箱等内容,点击自动跳转到系统功能;
  • 7)[优化] 优化了首页“消息”列表中同一好友和陌生人会话不能自动合并的问题。

部分功能运行截图(更多截图点此查看):

posted @ 2024-10-29 12:23 Jack Jiang 阅读(65) | 评论 (0)编辑 收藏

     摘要: 1、引言当你在浏览器输入 qq.com 按下回车键,到页面呈现在你面前,整个过程发生了什么?我以前思考过这个问题,从最前面的浏览器到最后的 db 都梳理的一遍,触发了一次技术顿悟,将很多散落的知识点贯通起来了。本文将抛弃千篇一律的计网知识理论,从现实的互联网技术实践角度,一步步为你分享一次网络请求背后的技术秘密。 技术交流:- 移动端IM开发入门文章:《新手入门一篇就够:从零开发移动端I...  阅读全文

posted @ 2024-10-24 11:34 Jack Jiang 阅读(106) | 评论 (0)编辑 收藏

一、关于RainbowChat-Web

RainbowChat-Web是一套Web网页端IM系统,是RainbowChat的姊妹系统(RainbowChat是一套基于开源IM聊天框架 MobileIMSDK (Github地址)  的产品级移动端IM系统)。

二、v7.2 版更新内容

此版更新内容更多历史更新日志):

  • 1)[bug] [前端]      - 解决了加载首页聊天记录时,存在极小概率出现消息重复的问题;
  • 2)[bug] [前端]      - 解决了Firefox浏览器中右键无法复制文本消息的问题;
  • 3)[bug] [服务端]   - 升级了MobileIMSDK-Web库,解决了服务端QoS机制C2S消息路径时去重逻辑未起效的问题;
  • 4)[优化] [前端]     - 解决了引用的名片消息不会显示默认头像的问题;
  • 5)[优化] [前端]     - 重构了相关的类名、文件名等;
  • 6)[优化] [服务端]  - 优化了离线消息处理效率(异步化、无锁队列、批量处理、事务合并);
  • 7)[优化] [服务端]  - 优化了聊天记录处理效率(异步化、无锁队列、批量处理、事务合并);
  • 8)[优化] [服务端]  - 优化了“接口1008-26-8”,使按时间戳加载的消息在客户端不发生重复;
  • 9)[优化] [服务端]  - 修改了离线消息、聊天记录异步定时器实现,使之运行更健壮;
  • 10)[重构] [服务端] - 重构了通用http服务端工程、MQ工程目录名等;

三、主要功能特性截图

主要功能特性截图(更多运行截图运行视频

posted @ 2024-10-21 14:20 Jack Jiang 阅读(45) | 评论 (0)编辑 收藏

     摘要: 本文由陆业聪分享,原题“一文掌握直播技术:实时音视频采集、编码、传输与播放”,本文进行了排版和内容优化。1、引言从游戏、教育、电商到娱乐,直播技术的应用场景无处不在。随着移动端的网速越来越快,直播技术的普及和发展将更加迅速。本文详细介绍了Android端直播技术的全貌,涵盖了从实时音视频采集、编码、传输到解码与播放的各个环节。文章还探讨了直播中音视频同步、编解码器选择、传输...  阅读全文

posted @ 2024-10-17 11:10 Jack Jiang 阅读(62) | 评论 (0)编辑 收藏

关于RainbowChat

RainbowChat是一套基于开源IM聊天框架 MobileIMSDK 的产品级移动端IM系统。RainbowChat源于真实运营的产品,解决了大量的屏幕适配、细节优化、机器兼容问题(可自行下载体验:专业版下载安装)。

* RainbowChat可能是市面上提供im即时通讯聊天源码的,唯一一款同时支持TCP、UDP两种通信协议的IM产品(通信层基于开源IM聊天框架  MobileIMSDK 实现)。

► 详细产品介绍:http://www.52im.net/thread-19-1-1.html
► 版本更新记录:http://www.52im.net/thread-1217-1-1.html
► 全部运行截图:Android端iOS端
► 在线体验下载:专业版(TCP协议)专业版(UDP协议)      (关于 iOS 端,请:点此查看

关于MobileIMSDK

MobileIMSDK 是一套专门为移动端开发的开源IM即时通讯框架,超轻量级、高度提炼,一套API优雅支持UDP 、TCP 、WebSocket 三种协议,支持iOS、Android、H5、小程序、Uniapp、标准Java平台,服务端基于Netty编写。

工程开源地址:

v11.7 版更新内容

此版更新内容更多历史更新日志):

(1)Android端主要更新内容:

  • 1)[优化] 优化了首页“消息”列表中单聊类型未正确同步时的收发消息和点击后的处理逻辑;
  • 2)[优化] 优化了首页“消息”列表中同一好友和陌生人会话不能自动合并的问题;

(2)服务端主要更新内容:

  • 1)[优化] 大幅提升群聊性能(改进离线消息存储方式等:异步提交、批量处理);
  • 2)[优化] 升级了mysql驱动至最新版8.4.0;
  • 3)[优化] 优化了离线消息处理性能(异步化、无锁队列、批量处理、事务合并);
  • 4)[优化] 优化了聊天记录处理性能(异步化、无锁队列、批量处理、事务合并);
  • 5)[优化] 优化了“接口1008-26-8”,使得与Web产品联合部署明web前端按时间戳加载的消息不与客户端发生重复;
  • 6)[优化] 修改了离线消息、聊天记录异步定时器实现,使之运行更健壮;
  • 7)[优化] 加好友成功后将成功通知保存至离线消息和消息记录。

部分功能运行截图更多截图点此查看):

posted @ 2024-10-16 10:16 Jack Jiang 阅读(55) | 评论 (0)编辑 收藏

Jack Jiang的 Mail: jb2011@163.com, 联系QQ: 413980957, 微信: hellojackjiang