2024年6月12日 随笔档案 -凯发k8网页登录

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

2024年6月12日

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

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

► 详细产品介绍:
► 版本更新记录:
► 全部运行截图:
► 在线体验下载:、      (关于 ios 端,请:

mobileimsdk 是一套专门为移动端开发的开源im即时通讯框架,超轻量级、高度提炼,一套api优雅支持udp 、tcp 、websocket 三种协议,支持ios、android、h5、小程序、uniapp、标准java平台,服务端基于netty编写。

工程开源地址是:

  • 1)gitee码云地址:
  • 2)github托管地址:

此版更新内容():

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

  • 1)[bug] 解决了app从后台恢复时,有一定几率因后台多线程操作好友数据导致的线程安全崩溃问题;
  • 2)[优化] 加固了一处好友列表中根据昵称取拼音首字母的非空检查逻辑;

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

  • 1)[bug] 升级了mobileimsdk至v6.5,尝试解决极小几率下android端会误把“自已”踢掉的问题
  • 2)[bug] 解决了因netty库版本升级导致ios消息推送失败报错的问题:
  • 3)[bug] 解决了消息撤回时,被引用消息的历史记录没有正确处理撤回逻辑;
  • 4)[优化] 为“接口1008-26-7”增加了“at_me”字段的返回;
  • 5)[优化] 优化了“接口1008-26-8”,使得在跟web互通时支持按时间戳的聊天记录分页加载方案;
  • 6)[优化] 为“接口1008-26-8”增加了“消息发送者昵称”内容的返回;

部分功能运行截图():

posted @ 2024-07-26 12:57 jack jiang 阅读(25) | 评论 (0)编辑 收藏

是一套web网页端im系统,是的姊妹系统(rainbowchat是一套基于开源im聊天框架  ()  的产品级移动端im系统)。

► 详细介绍:
► 版本记录:
► 运行截图:
► 运行视频:

此版更新内容():

  • 1)[bug] [前端]   - 解决了转发语音消息后,语音消息ui气泡css样式问题;
  • 2)[bug] [前端]   - 解决了登陆后首次打开对应聊天界面前收到的新消息和历史消息显示顺序问题;
  • 3)[bug] [前端]   - 解决了删除聊天后,没有自动清除聊天界面上的“加载更多”功能按钮;
  • 4)[bug] [前端]   - 解决了引用陌生人消息时,显示的是uid而不是对方昵称的问题;
  • 5)[bug] [前端]   - 解决了群主撤回群员消息时,系统通知中显示的是uid而不是对方昵称的问题;
  • 6)[优化] [前端]   - 优化了引用的消息内容中表情图标导致引用的文字不能垂直居中显示的ui问题;
  • 7)[优化] [前端]   - 优化了群聊中消息发送者昵称的显示;
  • 8)[优化] [服务端] - 为“接口1008-26-8”增加了“消息发送者昵称”内容的返回;

主要功能特性截图(

posted @ 2024-07-26 11:42 jack jiang 阅读(21) | 评论 (0)编辑 收藏

     摘要:      本文由京东技术王泽知分享,原题“基于web的跨平台桌面应用开发”,下文进行了排版和内容优化。1、引言近些年来,跨平台跨端一直是比较热门的话题,write once, run anywhere一直是开发者所期望的,跨平台方案的优势十分明显。对于开发者而言,可以做到一次开发、多端复用,一套代码就能够运行在不同设备上,这在很大程度上能够降低...  阅读全文

posted @ 2024-07-25 11:08 jack jiang 阅读(38) | 评论 (0)编辑 收藏

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

[- 1 -] 

[链接] 

[摘要] 本文是《移动端实时音视频直播技术详解》系列文章之第一篇,我们将从整体介绍直播中的各个环节。


[- 2 -] 

[链接] 

[摘要] 本文是《移动端实时音视频直播技术详解》系列文章之第二篇:我们将从整体介绍直播中的采集环节。


[- 3 -] 

[链接] 

[摘要] 本篇是《移动端实时音视频直播技术详解》系列文章之第三篇:我们将从整体讲解常见视频处理功能:如美颜、视频水印、滤镜、连麦等。


[- 4 -] 

[链接] 

[摘要] 本篇是是《移动端实时音视频直播技术详解》系列文章之第四篇:我们将从整体讲解编码和封装。


[- 5 -] 

[链接] 

[摘要] 本篇是《移动端实时音视频直播技术详解》系列文章之第五篇:我们将从整体讲解推流和传输。


[- 6 -] 

[链接] 

[摘要] 本篇是《移动端实时音视频直播技术详解》系列文章之第六篇:我们将从整体讲解延迟优化技术。


[- 7 -] 

[链接] 

[摘要] 本次分享就向大家介绍一下分享一下直播的整个流程和一些技术点,并动手实现一个简单的demo。


[- 8 -] 

[链接] 

[摘要] 连麦视频直播的客户端主要包括:原生 app、浏览器 h5、浏览器 webrtc、微信小程序。浏览器上的应用包括 h5 和 webrtc,前者可以拉流观看,后者可以实现推流和拉流。


[- 9 -]  

[链接] 

[摘要] 实时视频直播是这两年非常火的技术形态,已经渗透到教育、在线互娱等各种业务场景中。但要搭建一套实时视频直播系统,并非易事,当然相关的直播技术理论在论坛的其它文章里已经写的非常详细,本文不再展开。


[- 10 -] 

[链接] 

[摘要] 本文由淘宝直播音视频算法团队分享,对实现高清、低延时实时视频直播技术进行了较深入的总结,希望分享给大家。


[- 11 -] 

[链接] 

[摘要] 直播行业的竞争越来越激烈,进过2018年这波洗牌后,已经度过了蛮荒暴力期,剩下的都是在不断追求体验。最近正好在做直播首开优化工作,实践中通过多种方案并行,已经能把首开降到500ms以下,借此机会分享出来,希望能对大家有所启发。


[- 12 -] 

[链接] 

[摘要] 本文将分享新浪微博系统开发工程师陈浩在 rtc 2018 实时互联网大会上的演讲。他分享了新浪微博直播互动答题架构设计的实战经验。其背后的百万高并发实时架构,值得借鉴并用于未来更多场景中


👉52im社区本周新文:《》,欢迎阅读!👈

我是jack jiang,我为自已带盐!https://github.com/jackjiang2011/mobileimsdk/

posted @ 2024-07-11 12:38 jack jiang 阅读(55) | 评论 (0)编辑 收藏

     摘要: 本文由qq音视频团队贺坤分享原题“linux qq能打语音视频了!一文详解背后技术实现!”,下文进行了排版和内容优化等。1、引言2024年6月6日,qq for linux 3.2.9 正式支持了音视频通话功能,这是 qq linux 版本的又一个里程碑事件。 2024 年,qq 音视频正式推出 ntrtc,全平台(ios/android/macos/windows/lin...  阅读全文

posted @ 2024-07-04 11:31 jack jiang 阅读(51) | 评论 (0)编辑 收藏

本文由爱奇艺技术团队分享,作者isno,原题“爱奇艺海外app的网络优化实践”,下文进行了排版和内容优化等。

做海外市场,特别目标是面向全球的用户,网络的重要性不言而喻。试想一个移动端应用,比如即时通讯im,聊天消息的本质就是人跟人在说话,一条消息从发送到接受需要10秒的时间,这恐怕会让用户崩溃,随之就是被无情地卸载,开拓海外市场那就是做梦了。

本次分享的文章内容,基于爱奇艺面向全球用户推出的国际版,在海外跨国网络环境复杂的前提下,针对性地做了一系列弱网优化实践,取得了不错的效果,在此总结分享我们的一些做法和优化思路,希望对你有所帮助。

总结下来,跨国弱网优化实践的几个核心就是:

  • 1)能不请求网络就不请求;
  • 2)请求的链接目标 0-rtt;
  • 3)请求的内容越小越好。

正文内容我们将逐个技术点展开了分享。

 
 
技术交流:

- 移动端im开发入门文章:《》

- 开源im框架源码:()

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

  1. 《》
  2. 《》
  3. 《》(* 本文)

如果您是im开发初学者,强烈建议首先阅读《》。

在 app 初期版本内增加请求链路的采样。样本数足够的情况下,可以清楚你要推广的市场是怎样的环境。样本数据让我们清楚发现了各个国家、地区网络的问题,在大规模宣传和投入前,做好 app 的基础工作非常重要。

海外用户至海外数据中心的网络延迟(这是监测节点数据,用户端延迟更高):

海外主要国家、地区移动网络情况:

在调研阶段,我们发现了以下问题比较明显,切实影响我们的运营及 app 体验。

这些问题主要是:

  • 1)运营商劫持严重,dns 劫持、http 劫持;
  • 2)移动端网络复杂 ,东南亚的网络基础建设还待改善;
  • 3)低端 android 机有一定的占比,数量级别影响决策;
  • 4)国际网络用户端到服务器的延迟高。

在初期阶段,技术工作的核心是解决以上问题,为后续的运营做好基础建设。因为业务接口大部分为 http 形式,就开始围绕 https 进行针对性改进。

一个https请求阶段分析:

一个 https 在第一请求会有 5 个 rtt:

1rtt(dns) 1rtt(tcp 握手) 2rtt(tls1.2) 1rtt(http 链接)

如果以端到服务 50ms 延迟为例:

一个 https 的接口延迟 =  350ms =  50*5 100ms(服务端)

如果目标是一个非国内用户,打开凯发k8网页登录首页需要 1.1s, 这个时间显然有点长。

下面开始进行技术改进的正文,以下是概括技术性优化的关键点:

4.1dns 优化调整

dns 的解析改为 httpdns,dns 的改进上线后观察初始连接请求提升 17% 的效率。

目的主要是:

  • 1)解决域名劫持问题 (东南亚地区回传的数据显示有不少劫持);
  • 2)解决 localdns 非就近分配问题;
  • 3)结合业务可以做解析预热。

4.2传输层的优化调整

mtu 的问题 :

  • 1)client 端和 server 端不同的 mtu 值会导致丢包率过高。aws 某些场景实例默认巨型帧:mtu 是 9001,但接收端默认 1500,这时候就会出现一些丢包的现象;
  • 2)如果你用了多个云商服务,用 vpn 组网,ip隧道封装的数据临界 1500,又会造成丢包、包重传问题;
  • 3)最严重的情况:部分网络封杀 icmp 协议,导致 mtu 无法自动协商。

tcp 拥塞控制优化:

拥塞窗口 congwin 是未接收到接收端确认情况下连续发送的字节数; 。congwin 是动态调整,取决于带宽和延迟的积,比如 100mb 的带宽 100ms 的延迟环境。

时延带宽积 = 100mbps*100ms = (100/8)*(100/1000) = 1.25mb

理论上 congwin 窗口可以最大化到 1.25mb。centos 默认congwin = 20*mss,在 29kb 左右,离上限 1.26mb 差太多了,默认值上调tcp的启动会更快。

tcp 快速打开 (tcp fast open:tfo):

tcp 的 keepalive 下依然会有链接断掉重建的情况,tfo 是针对这种情况的优化。

tfo 的原理机制:

在我们观察中开启 tfo 机制,海外业务一个 rtt 通常时间在 100ms 以上,http 请求效率提升了 12% 左右。

5.1http 的优化

http1.1 有个 keep-alive 作用是复用 tcp 链接,减少新建的消耗,对于浏览器的业务比较适用,但对于移动端这种时间分散的请求,大部分请求还是新建连接。

http1.1 的串行机制有头部阻塞的问题。

5.2ssl 层优化

尽量升级到 tls1.3(微信的tls1.3实践:《》),利用 pre-shared key 机制,开启 ssl_early_data 可以进一步优化 “0-rtt ”,如果无法升级 tls 版本,优化密钥算法为 ecdhe,运算速度快,握手的消息往返由 2-rtt 减少到 1-rtt,能达到与 tls1.3 类似的效果。

tls 版本的区别:

tls1.3 经过优化后,一个 http 请求由之前的 4 个 rtt 减少为 3 个 rtt。

5.3升级 http2.0

几个重要的改进点:

  • 1)分帧传输;
  • 2)多路复用;
  • 3)头部压缩。

多路复用:

在 http/2 中,两个非常重要的概念:帧(frame)和流(stream)。帧代表着最小的数据单位,每个帧会标识出该帧属于哪个流,流也就是多个帧组成的数据流。多路复用,就是在一个 tcp 连接中可以存在多条流。这些改进可以避免 http 队头阻塞问题,提高传输性能。

头部压缩:

开发人员如果不注意对 header 内容的控制,会造成 header 内容失控的现象,客户端极容易存储一个非常大的 cookie。

http2 的分帧传输机制:

5.4边缘节点动态加速

这个是非常有效的方式。

尽可能离用户最近,利用边缘节点对路由、链路进行优化,提高动态服务的效率。相较于直连模式,使用动态加速后,p90 的接口延迟效率提升了 60%。

爱奇艺海外动态加速的效果提升(请求时间为秒):

5.5启用兜底机制

对于失败的请求,启用兜底的协议 quic 或者 kcp。

客户端的失败率在 3% 左右,对这部分请求使用 udp 协议兜底尝试,在我们的观察成功率提升了 45%。

6.1应用 brotli

因为预置了字典,在同等级别的压缩率下,对比 gzip 至少提升了 17% 的压缩比,接口平均的 content-size 由 30kb,降至 18kb。

6.2接口由 json 改为 google protobuf

应用 protobuf 的重要原因是解析效率比 json 至少高四五倍,在节点深度和数据量大的情况下更明显。

但注意 protobuf 内部的 varint 压缩,只对小于 128 的数字进行可变长压缩。实际效果不大,生产环境如果数据量大,外层的压缩如 gzip 不可少。

ps:关于protobuf的资料,可以进一步阅读《》。

6.3图片格式升级为 webp

在应用 webp 的同时,降低海报图片的质量,实践看海报的 quality 设置为 85% 肉眼难以分辨,相对同质量的 jpeg 或者 png ,可以最大减小 45% 的体积。

应用效果明显。app 打开凯发k8网页登录首页图片的加载提升肉眼可见。

7.1减少不必要请求:

一些通用内容,如导航、频道,通常由运营人员主动更新。

如下图:增加一个启动阶段请求的接口,里面放入内容更新的时间戳,与本地 cache 的时间戳有差异,则异步请求更新。

 

7.2区别用户网络,适应不同的策略

具体作法是:

  • 1)对于视频,非 wifi 默认启播码率为 360p;
  • 2)对于海报,后端接口提供两种质量的 url,wifi 高质,4g 低质。

7.3更多的业务优化

增加请求重试、调整 http 的超时时间,请求缓存等等  这些可以根据业务的需求进行调整。

爱奇艺海外版app经过一系列细节优化,用户体验持续上升。用户接口延迟、客户端失败率、视频播放成功率一系列的关键指标得到很大的改善。这也助力爱奇艺在东南亚多个国家的应用市场排名升至 top 1。

另外 app 优化、server 延迟优化、产品体验的改进,这一系列只有相辅相成才可以最大化提升用户体验。

[1]  - 

[2] 

[3] 

[4] 

[5] 

[6] 

[7] 

[8] 

[9] 

[10] 

[11] 

[12] 

[13] 

[14] 

[15] 

[16] 

[17] 

[18] 

[19] 

[20] 


posted @ 2024-06-27 11:51 jack jiang 阅读(43) | 评论 (0)编辑 收藏

是一套web网页端im系统,是的姊妹系统(rainbowchat是一套基于开源im聊天框架  ()  的产品级移动端im系统)。

► 详细介绍:
► 版本记录:
► 运行截图:
► 运行视频:

此版更新内容():

  • 1)[bug] [前端]    - 解决了断网重连后,凯发k8网页登录首页“消息”列表中的item选中状态会消失的问题;
  • 2)[bug] [前端]    - 解决了“清屏”功能不能清除群聊缓存的问题;
  • 3)[bug]  [服务端] - 解决了消息撤回时,被引用消息的历史记录没有被正确处理;
  • 4)[新增] [前端]    - 新增“@”功能;
  • 5)[新增] [前端]    - 新增消息引用功能(支持引用全部消息类型);
  • 6)[新增] [前端]    - 启用了新的“加载更多”功能,支持动态分页加载,提升大量历史聊天记录下的用户体验;
  • 7)[优化] [前端]    - 凯发k8网页登录首页消息列表中的语音消息将显示时长(跟新版微信一样);
  • 8)[优化] [前端]    - 优化了聊天消息中的网址链接显示(自动解析超链接);
  • 9)[优化] [前端]    - 大幅提升聊天界面中加载大量消息时的ui渲染性能;
  • 10)[优化] [前端]   - 其它ui和体验的小细节优化;
  • 11)[优化] [服务端] - 为“接口1008-26-7”增加了“at_me”字段的返回;
  • 12)[优化] [服务端] - 优化了“接口1008-26-8”,使聊天记录支持按时间戳的分页加载方案;
  • 13)[优化] [服务端] - 升级了包括log4j2等在内的一些基础库版本。

“@”功能功能运行截图):

“消息引用”功能():

 

posted @ 2024-06-24 13:25 jack jiang 阅读(29) | 评论 (0)编辑 收藏

     摘要: 本文由腾讯技术kernel分享,原题“tcp经典异常问题探讨与解决”,下文进行了排版和内容优化等。1、引言tcp的经典异常问题无非就是丢包和连接中断,在这里我打算与各位聊一聊tcp的rst到底是什么?现网中的rst问题有哪些模样?我们如何去应对和解决?本文将从tcp的rst技术原理、排查手段、现网痛难点案例三个方面,自上而下、循序渐进地给读者带来一套完整的分析方法和解决思路...  阅读全文

posted @ 2024-06-20 12:49 jack jiang 阅读(53) | 评论 (0)编辑 收藏

     摘要: 本文由环信技术黄飞鹏分享,原题“实战|如何利用 electron 快速开发一个桌面端应用”,本文进行了排版和内容优化等。1、引言早就听说利用electron可以非常便捷的将网页端快速打包成桌面应用,并且利用 electron 提供的 api 调用可以使用原生桌面 api 一些高级功能。于是这次借着论证 web im端 sdk 是否可以在 electron 生成的桌面端正常稳...  阅读全文

posted @ 2024-06-13 11:53 jack jiang 阅读(46) | 评论 (0)编辑 收藏

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

[- 1 -] 

[链接] 

[摘要] 本文将从如何保证连接的业务安全(禁止非业务认证的连接订阅消息)和如何扩展能够支持更多的消息和连接两点展开分析。


[- 2 -] 

[链接] 

[摘要] 本文追溯了推送技术的发展历史,剖析了其核心原理,并对推送服务的关键技术进行深入剖析,围绕消息推送时产生的服务不稳定性,消息丢失、延迟,接入复杂性,统计缺失等问题,提供了一整套平台级的高可用消息推送凯发天生赢家一触即发官网的解决方案。实践中,借助于该平台,不仅能提能显著提高消息到达率,还能提高研发效率,并道出了移动开发基础设施的平台化架构思路。


[- 3 -] 

[链接] 

[摘要] 本文内容整理自奇虎360公司的周洋在 gopher china 2015 大会上的分享(演讲ppt下载:《go语言构建高并发消息推送系统实践ppt(来自奇虎360)[附件下载] 》),该次分享以360海量在线的消息推送系统为例,来探讨使用go语言构建高并发消息推送系统时所遇到的问题以及总结出的各种实践技巧。


[- 4 -]

[链接] 

[摘要] 本文整理了此次甘恒演讲的内容并以文字的方式分享给大家,希望能给技术同行带来一些技术上的启发。



[- 5 -] 

[链接] 

[摘要] 本文作者是美拍的架构师,经历了直播弹幕从无到有,从小到大的过程,借此文为大家分享构建弹幕系统的经验,希望能为正在开发或正打算开发弹幕、消息推送、im聊天等系统的技术同行带来一些启发。


[- -] 

[链接] 

[摘要] 我会详细的介绍下京麦实时消息推送是如何在演变中不断完善的。


[- 7 -] 

[链接] 

[摘要] 本文将对ios push的在线push、本地push及离线(远程)push进行了详细梳理,介绍相关逻辑、测试时要注意的要点以及相关工具的使用。


[- 8 -] 

[链接] 

[摘要] 本文要分享的消息推送指的是当ios端app被关闭或者处于后台时,还能收到消息/信息/指令的能力。


[- 9 -]  

[链接] 

[摘要] 本文将描述“达达-京东到家”的订单即时派发系统从无到有的系统演进过程,以及方案设计的关键要点,希望能为大家在解决相关业务场景上提供一个案例参考。


[- 10 -] 

[链接] 

[摘要] 本文主要分享的是如何从零设计开发一个中大型推送系统,因限于篇幅,文中有些键技术只能一笔带过,建议有这方面兴趣的读者可以深入研究相关知识点,从而形成横向知识体系。


[- 11 -] 

[链接] 

[摘要] 本文分享了爱奇艺基于netty实现websocket长连接实时推送网关时的实践经验总结。


[- 12 -] 

[链接] 

[摘要] 本文分享的离线消息推送系统设计并非专门针对im产品,但无论业务层的差别有多少,大致的技术思路上都是相通的,希望借喜马拉雅的这篇分享能给正在设计大用户量的离线消息推送的你带来些许启发。


[- 13 -] 

[链接] 

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


[- 14 -] 

[链接] 

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


[- 15 -] 

[链接] 

[摘要] 本文将首先从pike的系统架构升级、工作模式升级、长稳保活机制升级等方面介绍2.0版本的技术演进,随后介绍其在直播、游戏等新业务场景下的技术特性支持,并对整个系统升级过程中的技术实践进行了总结。


[- 16 -] 

[链接] 

[摘要] 本文将要分享的是vivo技术团队针对消息推送系统的高并发、高时效、突发流量等特点,从长连接层容灾、逻辑层容灾、流量容灾、存储容灾等方面入手,如何保证百亿级厂商消息推送平台的高可用性的。


[- 17 -] 

[链接] 

[摘要] 本文分享的是得物针对现有的消息推送系统的消息送达耗时、实时性、稳定性等方面问题,从零到一构建完整的消息推送质量监控体系和机制的技术实践。


[- 18 -] 

[链接] 

[摘要] 本文将介绍b站基于golang实现的千万级长连接实时消息系统的架构设计与实践,包括长连接服务的框架设计,以及针对稳定性与高吞吐做的相关优化。


👉52im社区本周新文:《》,欢迎阅读!👈

我是jack jiang,我为自已带盐!https://github.com/jackjiang2011/mobileimsdk/

posted @ 2024-06-12 14:54 jack jiang 阅读(43) | 评论 (0)编辑 收藏

jack jiang的 mail: jb2011@163.com, 联系qq: 413980957, 微信: hellojackjiang
网站地图