展开

关键词

从客户端的角度来谈谈移动端IM的消息可靠性和送达机制

1、前言IM App 是我做过 App 类型里复杂度最高的一类,里面可供深究探讨的技术难点非常之多。 第一个问题是:现在的 IM App 几乎都是走 TCP 通道,既然 TCP 本身是具备可靠性的,为什么还会出现消息接收端(Receiver)丢失消息的情况,看下图一目了然:? 举个最简单的场景为例子:消息可靠抵达网络层之后,写 db 之前 App crash(不稀奇,是 App 都会 crash),虽然数据在网络层可靠抵达了,但没存进 db,下次用户打开 App 消息自然就丢失了 》 《移动端IM实践:WhatsApp、Line、微信的心跳策略分析》 >> 更多同类文章 …… 有关WEB端即时通讯开发: 《新手入门贴:史上最全Web端即时通讯技术原理详解》 《Web端即时通讯技术盘点 《开源框架Pomelo实践:搭建Web端高性能分布式IM聊天服务器》 《使用WebSocket和SSE技术实现Web端消息推送》 《详解Web端通信方式的演进:从Ajax、JSONP 到 SSE、Websocket

97220

IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token

6.1 Token的起源诸如Ember,Angular,Backbone之类的Web前端框架类库正随着更加精细的Web应用而日益壮大。 这就是传统的web应用逃避HTTP面向无连接的方法(This is how traditional web applications get around the fact that HTTP is stateless 如果你的后端不是stateless的rest api,那么你可能需要在app里保存Session.可以在app里嵌入webkit,用一个隐藏的browser来管理cookie Session.Session 而Token,如果指的是OAuth Token或类似的机制的话,提供的是 认证 和 授权 ,认证是针对用户,授权是针对App。其目的是让 某App有权利访问 某用户 的信息。这里的Token是唯一的。 如果永远只是自己的网站,自己的App,用什么就无所谓了。

45620
  • 广告
    关闭

    腾讯云即时通信IM,新客首月99.9元

    腾讯云即时通信,1分钟跑通DEMO,结合开源 UI 库,快速搭建IM 应用,全球多点覆盖

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    产品双月刊 | 腾讯云音视频即时通信IM(2021年8月-10月)

    近期,腾讯云即时通信IM有哪些 重大发布? 它又带给我们了哪些 惊喜 ? 请跟随我们的脚步一起来回顾! 「 即时通信 IM 」 1. 即时通信 IM 小程序 TUIKit 已全量发布 即时通信 IM 小程序TUIKit是为了便利客户快速集成小程序端 IM 服务,推出的一套 UI 组件库。 腾讯云即时通信 IM 跨平台利器 --- uni-app TUIKit上线了 基于 Web IM SDK 在 HBuilderX 中编译 Android、iOS 应用以及小程序应用,可实现一套代码多端打包 uni-app TUIKit 在线客服场景 提供了示例客服群 ➕ 示例好友的基础模版,在线客服场景功能包括: 支持发送文本消息、图片消息、语音消息、视频消息等常见消息。 uni-app TUIKit 支持平台:安卓、iOS、微信小程序 详见:https:github.comtencentyunTIMSDKtreemasteruni-app 3.

    7040

    python3 使用flask_socketio实时推送服务器状态(top)和 日志信息(tail)

    使用python3和flask_socketio ,实现服务器上的tail和top命令的实时展示,将结果实时展示在web上tail在页面上限制了显示长度,自动滚动显示最新数据效果如下:tail效果? 正确的解决方式是,在实例化SocketIO时,加上 cors_allowed_origins=*socketio = SocketIO(app , cors_allowed_origins=*)主要代码如下 = Flask(__name__)app.config = SECRET_KEYsocketio = SocketIO(app)# 跨域时使用下面的# socketio = SocketIO(app, ; }); socket.on(disconnect, function (data) { socket.emit(close_tail, {data: Im disconnected!}) ; }); $(window).bind(beforeunload, function () { 离开页面前关闭tail socket.emit(close_tail, {data: Im leave

    1K30

    JWT技术解决IM系统的认证痛点

    一、痛点随着业务的发展,多个业务线接入了IM系统,IM系统长连接的安全问题变得很重要。瓜子有统一登录认证系统SSO,IM长连接通道也利用这个系统做安全认证,结构如下图。 ? 认证步骤如下1、用户登录AppApp从业务后台拿到单点系统SSO颁发的token2、当App需要使用IM功能时,将token传给IM客服端SDK3、SDK跟IM Server建立长连接的时候用token 进行认证4、IM Server请求SSO系统,确认token合法性咋一看,这个过程没有什么问题,但是IM(尤其是移动IM)业务的特殊性,这个结构并不好。 JSON Web Token(JWT)是一种开放标准(RFC 7519),它定义了一种紧凑且独立的方式,可以在各方之间通过JSON对象安全地传输信息。此信息可以通过数字签名进行验证和信任。 1、用户登录AppApp从业务后台拿到单点系统SSO颁发的token2、当App需要使用IM功能时,将token传给IM客服端SDK3、SDK将用户名及第2步中得到的token发给后台的JWT Server

    30110

    即时通讯(IM)开源项目OpenIM本周版本发布-v1.0.6

    star 是作者们前进的动力,也是我们力争开源IM项目No1的基石。 分支说明:(1)dev:外部开发者在此分支上提交pr; (2)tuoyun:OpenIM内部专用;(3)main:最新可用分支;重点特性展示openIM pc web体验关于我们托云信息技术(成都)有限公司我们致力于通过开源模式 (6) 全平台支持支持Andorid、iOS原生开发,支持Flutter、uni-app跨端开发,支持小程序、React等所有主流web前端技术框架, PC支持Electron,Flutter、iOS、 uni-app、h5已有成熟demo可以体验。 我们通过开源的方式,邀请全球技术极客来参与Open-IM建设,使每位开发者都能免费使用最优秀的IM组件,让每个app都具备即时通讯能力。

    8620

    最佳实践丨基于 TRTC 和 IM 实现 Web 群直播

    Web 群直播和微信群直播功能类似,不需要下载专业的直播 App 就可以直播。 针对这样一款群直播产品功能,可以通过集成 Web 直播互动 SDK—TWebLive来实现。 一、网页版群直播效果 ? ? 二、网页版群直播实现框架 ? 7、网页版群直播与云通信 IM App 群直播互通体验。 ? ? 四、实现群直播的核心技术—TWebLive 网页版群直播功能的实现依赖 TWebLive SDK。 TWebLive 集成了腾讯云实时音视频 TRTC、腾讯云即时通信 IM 、腾讯云超级播放器 TcPlayer,覆盖了 Web 直播互动场景常见的功能,封装了简单易用的API。 4、群直播互动功能实现 由于腾讯云即时通信 IM Demo 中已经集成了 IM 应用,直播互动部分的功能通过 IM SDK API实现。 ?

    44620

    IM即时通信探索(二)-- IM即时通信采坑

    自定义资料字段的申请App 管理员可以通过即时通信 IM控制台>【应用配置】>【功能配置】 申请自定义资料字段,申请提交后,自定义资料字段将在5分钟内生效。 App 管理员可以通过即时通信 IM 控制台 >【应用配置】>【功能配置】申请自定义好友字段,申请提交后,自定义好友字段将在5分钟内生效。 自定义群组 ID默认情况下,App 创建群时,即时通信 IM 会为新创建的群组分配一个默认的群组 ID。该 ID 将以 @TGS# 开头,且保证在 App 中唯一。 为了使得群组 ID 更加简单,便于记忆传播,即时通信 IM 支持 App 在通过 REST API 创建群组时自定义群组 ID。 自定义字段即时通信 IM 支持 App 根据业务需求,在群组和群成员两个维度上设置自定义字段。群组维度最多支持20个字段,群成员维度最多支持5个字段。

    90220

    人艰偏要拆系列之腾讯云通信产品测评获奖文档首公开!

    本文通过测评即时通信IM Demo、实时音视频TRTC Demo、IM 产品文档以及IM 产品控制台这四个方向详细地解说了她的心得。 首先她在测评 IM Demo 提出了我们做的很好的细节:1、注册流程合理,能支持发送图片和视频;2、Web端可以通过外部链接的方式自定义头像;3、Android端发送视频有自动美颜功能;4、Web端Demo 舒欣同学在发掘亮点的同时,也发现了 IM Demo 和 TRTC Demo存在的问题:1、在体验 IM 小程序 Demo 时,关闭麦克风权限后,录音按住说话没有重新获取权限提示;2、通知栏的消息无法点击进入 App;3、TRTC 小程序第一次登录会遇到无法正常获取授权信息;4、TRTC Android端视频互动直播房间列表消息跟实际不符。 希望未来 IM 和 TRTC 能更注重细节打磨,完善更多场景的解决方案,让这两款产品在市场上更加具有优势。

    16730

    彻底替代flash推流:腾讯云这套直播SDK有哪些优势?

    导语 | 腾讯云 Web 直播互动组件——TWebLive,是腾讯云终端研发团队推出的一个新的 SDK,开发者只需简单接入,就能快速实现 Web推拉流、实时互动等功能。 文章作者:杨桥,腾讯云 Web 研发工程师。 直播互动 当主播和观众需要聊天互动时,创建 IM(即时通信)对象,最简单的消息收发仅需3步: 1、创建 IM(即时通信)对象并监听事件let im = TWebLive.createIM({ SDKAppID 正确的 UserSig 签发方式是将 UserSig 的计算代码集成到你的服务端,并提供面向 App 的接口,在需要 UserSig 时由你的 App 向业务服务器发起请求获取动态 UserSig。 六、结语 本文为大家介绍了腾讯云新的 Web 直播互动组件——TWebLive,通过接入此 SDK,开发者可以快速轻便地实现Web 推流、Web 低延时观看、CDN 观看以及实时聊天互动(或弹幕)等功能

    46950

    iOS那些值得参考的App项目源码(GitHub优秀iOS完整项目源码大收录!)

    模板 PlayTogether 一款以兴趣为驱动的陌生人社交app producthunt-osx Product Hunt For Mac 官方App 冰与火之歌App 冰与火之歌中文维基iOS App 开源IM. 笔者强烈推荐.GitHub - mogujieTeamTalk: TeamTalk is a solution for enterprise IM 13. MessageDisplayKit 一个类似微信AppIM应用,拥有发送文字、图片、语音、视频、地理位置消息,管理本地通信录、分享朋友 圈、漂流交友、摇一摇和更多有趣的功能。 笔者推荐的学习IM的好东西.GitHub - xhzengAIBMessageDisplayKit: An IM App like WeChat App has to send text, pictures Frameless - 全屏Web浏览器 GitHub - stakesFrameless: A chromeless web browser for viewing prototypes. 17.

    14.8K72

    IM开发基础知识补课(二):如何设计大量图片文件的服务端存储架构?

    本文分享的是典型Web应用中大量图片的服务端存储加构的演进过程,但基本的技术原理和架构思路对于IM系统而言同样适用,所以在阅读时可以根据自已IM的实际架构情况,酌情吸取适合您的内容即可。 上面提到的几种架构,在上传下载操作时,都经过了Web服务器(虽然共享存储的这种架构,也可以配置独立域名和站点来提供图片访问,但上传写入仍然得经过Web服务器上的应用程序来处理),这对Web服务器来讲无疑是造成巨大的压力 Web方式)访问的站点,并加入缓存策略。 (上篇)》 《QQ音乐团队分享:Android中的图片压缩技术详解(下篇)》 《腾讯原创分享(一):如何大幅提升移动网络下手机QQ的图片传输速度和成功率》 《腾讯原创分享(二):如何大幅压缩移动网络下APP 的流量消耗(上篇)》 《腾讯原创分享(二):如何大幅压缩移动网络下APP的流量消耗(下篇)》 《如约而至:微信自用的移动端IM网络层跨平台组件库Mars已正式开源》 《基于社交网络的Yelp是如何实现海量用户图片的无损压缩的

    96740

    用JWT技术解决IM系统Socket长连接的身份认证痛点

    我们的IM长连接通道也利用这个系统做安全认证,结构如下图:如上图所示,整个认证步骤如下:1)用户登录AppApp从业务后台拿到单点登陆系统SSO颁发的token;2)当App需要使用IM功能时,将token 理解移动网络的“弱”和“慢”》《移动端IM开发者必读(二):史上最全移动弱网络优化方法总结》5、完全搞懂什么是JWT技术5.1 基础知识JSON Web Token(简称JWT),是一个开放安全的行业标准 我们采用JWT验证IM的Socket长连接流程如下:如上图所示,整个验证过程描述如下:1)用户登录App(使用IM客服端SDK),App从业务后台拿到SSO单点登陆系统颁发的token(注意:此token 还不是JWT的token,它将在第3)步中被使用并生成真正的JWT token);2)当App需要使用IM功能时,将token传给IM客服端SDK(这是在客户端完成的,即当App的功能调用IM客服端SDK (E2EE)的工作原理》《移动端安全通信的利器——端到端加密(E2EE)技术详解》《Web端即时通讯安全:跨站点WebSocket劫持漏洞详解(含示例代码)》《通俗易懂:一篇掌握即时通讯的消息传输安全原理

    38820

    移动端IM开发需要面对的技术问题

    后者常见于WEB IM系统(当然现在很多WEB IM都是基于WebSocket实现),它的优点是实现简单,方便开发上手,问题是流量大,服务器负载较大,消息及时性无法很好地保证,对大规模的用户量支持不够, 5.3 MQTT优点:协议简单,流量少;缺点:它并不是一个专门为IM设计的协议,多使用于推送。5.4 私有协议市面上几乎所有主流IM APP都是是使用私有协议,一个被良好设计的私有协议优点非常明显。 7.2 快速连接(即掉线重连机制)对iOS APP而言,因为没有真后台的存在,APP每次启动基本都需要一次重连登录(短时间内切换除外),所以如何快速重连、重登就非常重要。 7.3 连接保持(即心跳机制)一般APP实现连接保持的方式无非是采用应用层的心跳,通过心跳包的超时和其他条件(网络切换)来执行重连操作。那么问题来了:为什么要使用应用层心跳和如何设计应用层心跳。 移动端在实际操作时为了节约流量和电量一般会在心跳包上做一些小优化: 精简心跳包,保证一个心跳包大小在10字节之内; 心跳包只在空闲时发送; 根据APP前后台状态调整心跳包间隔 (主要是安卓)。

    63310

    移动APPIM后台架构浅析

    IM(InstantMessaging 即时通讯)作为一项基础功能,很多APP都有,比如:手机QQ、微信、易信、钉钉、飞信、旺旺、咚咚、陌陌等。 而IM如同我们日常生活中的水和电一样,必不可少,也是很多“社交”类APP必不可少的基础功能,而上面这些APP里面,微信最为出色。 扯了这么多,准备切入正题...移动互联网的一些特性:1、弱网络 2、对电量、流量敏感; 如果你的APP提供的IM服务,一是慢、经常丢失消息二是还特别费流量、电量,你觉得用户有什么理由不卸载你的APP呢? IM的基本原则:1、消息收、发尽可能快(不快、不实时就不叫即时通讯了); 2、不能丢失消息(你把消息都丢失了,谁还敢用,跟钱存银行钱可能会丢差不多);网络传输协议的选择APP上的IM传输协议以TCP主为 如果要实现像微信一样,支持web版,可以用HTTPHTTPS来实现comet或者直接使用websocket(低版本的浏览器不支持)消息协议的选择几个原则: 1、传输信息体积尽可能小,越小才能传的越快,失败重传的可能性也越低

    1.4K20

    iOS音视频接入- IM及时通讯基本原理

    IM简介即时通信(Instant Messaging,IM)基于 QQ 底层 IM 能力开发,仅需植入 SDK 即可 轻松集成聊天、会话、群组、资料管理能力,帮助您实现文字、图片、短语音、短视频等富 媒体消息收发 以上版本支持支持支持Mac兼容 OS X 10.10 以上版本支持支持-Windows包含C 、C++ ,兼容 Windows 7、Windows 88.1、Windows 10;全面支持32位和64位程序接入---Web 常见消息场景 SDK集成方式image.png IM基本流程image.png1、初始化:IM需要建立网络连接,客户端与服务端需要建立长连接,本地存储数据等异步操作。 企业微信20201020-105643@2x.png消息对象消息是IM中最重要的部分,发送方构造的消息通过服务端投递到接收方的过程中,根据IM对象及其属性进行相应的解析。 IM 推送image.png UI处理与TUIKitSDK通过API供开发者使用,被开发者集成到其App业务之中,SDK功能专一,不会侵入开发者App的业务逻辑,更不会直接操作App的UI绘制。

    40732

    腾讯云即时通信 IM 来帮你

    早前腾讯云即时通信 IM 已支持这一特性,不仅如此,近期 IM 又发布了同一平台支持多终端登录功能!这是有多厉害? 即时通信 IM 的终端类型分成以下几种:Android,iOS,iPad,Mac,Windows,Web。 多端登录的设置分成两部分 1. 、Windows、Mac可有1端在线;Web可同时在线; 三平台登录:Android、iPhone、iPad可有1种平台在线;Windows、Mac可有1种平台在线;Web可同时在线; 多平台登录:Android 支持同一平台多端登录,再加上原来已经支持的多平台同时登录,对于用户有什么影响 当我们在使用手机 App 的时候是否会遇到以下问题: 1、小朋友在网上学习,家长不能在其他设备登录同一个账号来跟进学习进度; 即时通信 IM 多端登录功能配置文档: ? 点击文末「阅读原文」直达官网配置文档 ? ? ? ? ?

    16040

    Exchange 2010 OWA Lync联系人列表故障案例

    Exchange 2010 OWA 与 Lync 2010 的IM集成已经稳定运行几年,突然接用户反馈打开Exchange 2010 Outlook Web App 没有联系人列表项,无法展开与 Lync联系人的IM消息沟通。 希望此案例可以帮忙做Exchange 2010与Lync 2010 OWA与IM集成的朋友。

    22810

    小白必读:闲话HTTP短连接中的Session和Token

    蒂姆·伯纳斯·李(Tim Berners-Lee)爵士作为万维网(World Wide Web,简称WWW或互联网)的发明者,被尊称为互联网之父。 而30年前的Web 基本上就是文档的浏览而已, 既然是浏览,我作为一个服务器, 为什么要记住谁在一段时间里都浏览了什么文档呢? 5、是时候该Session出场了但是好日子没持续多久, 很快大家就不满足于静态的Html 文档了, 交互式的Web应用开始兴起, 尤其是论坛, 在线购物等网站。 的流量消耗(上篇)》 《腾讯原创分享(三):如何大幅压缩移动网络下APP的流量消耗(下篇)》 《如约而至:微信自用的移动端IM网络层跨平台组件库Mars已正式开源》 《基于社交网络的Yelp是如何实现海量用户图片的无损压缩的 《腾讯技术分享:腾讯是如何大幅降低带宽和网络流量的(图片压缩篇)》 《腾讯技术分享:腾讯是如何大幅降低带宽和网络流量的(音视频技术篇)》 《为什么说即时通讯社交APP创业就是一个坑?》

    24430

    技术往事:微信估值已超5千亿,雷军曾有机会收编张小龙及其Foxmail

    1、微信的辉煌据汇丰银行(HSBC)发布的报告显示,腾讯公司旗下手机通讯app微信市场价值估计高达836亿美元(约合人民币5344亿元),几乎是腾讯市值的一半。 一开始非常不顺利,最早的版本类似Web上的巨无霸,几乎无法操作。从程序员到管理者,从客户端产品经理到Web产品经理,张小龙度过了极为孤独的三年时光。三年后,他完成了第一次变形。 张小龙开始了他的第二次转变,从Web工具类产品,进入Web社交类产品。这一过程大约耗费了不到两年时间,难度比上一次更大,周折更多。张小龙和他的团队最先试验了阅读空间,这是跳出工具类产品的第一个接榫。 的流量消耗(下篇)》  《腾讯原创分享(二):如何大幅压缩移动网络下APP的流量消耗(上篇)》  《微信Mars:微信内部正在使用的网络层封装库,即将开源》  《如约而至:微信自用的移动端IM网络层跨平台组件库 《移动端IM实践:Android版微信如何大幅提升交互性能(二)》 《移动端IM实践:实现Android版微信的智能心跳机制》  《移动端IM实践:WhatsApp、Line、微信的心跳策略分析》

    1K20

    相关产品

    • 即时通信 IM

      即时通信 IM

      即时通信(Instant Messaging,IM)基于QQ 底层 IM 能力开发,仅需植入 SDK 即可轻松集成聊天、会话、群组、资料管理能力,帮助您实现文字、图片、短语音、短视频等富媒体消息收发,全面满足通信需要。

    相关资讯

    热门标签

    扫码关注云+社区

    领取腾讯云代金券