学习
实践
活动
专区
工具
TVP
写文章

跟着源码IM(十):基于Netty,搭建高性能IM集群

学习交流: - 移动端IM开发入门文章:《新手入门一篇就够:从零开发移动端IM》 - 开源IM框架源码:https://github.com/JackJiang2011/MobileIMSDK (本文已同步发布于 :http://www.52im.net/thread-3816-1-1.html ) 2、本文源码 主地址:https://github.com/nicoliuli/chat 备地址:https:// github.com/52im/chat 源码的目录结构,如下图所示: 3、知识准备 * 重要提示:本文不是一篇即时通讯理论文章,文章内容来自代码实战,如果你对即时通讯(IM)技术理论了解的太少,建议先详细阅读 《一文读懂即时通讯应用中的网络心跳包机制:作用、原理、实现思路等》 如果觉得理论不够直观,下面的代码实例可以直观地进行学习: 《正确理解IM长连接的心跳及重连机制,并动手实现(有完整IM源码)》 《一种 手把手教你自撸一个Andriod版简易IM (有源码)》 《手把手教你用Netty实现网络通信程序的心跳机制、断线重连机制》 其实,心跳算法的实际效果,还是有一些逻辑技巧的,以下两篇建议必读: 《Web

74810

跟着源码IM(九):基于Netty实现一套分布式IM系统

好了,IM开发实际上涉及的知识维度非常多,限于篇幅就不在这里啰嗦更多,各位读者务必对着源码同步进行学习,这样效果会更好(源码在本文“4、本文源码”一节的附件处可下载)。 9、系列文章 《跟着源码IM(一):手把手教你用Netty实现心跳机制、断线重连机制》 《跟着源码IM(二):自已开发IM很难? 手把手教你撸一个Andriod版IM》 《跟着源码IM(三):基于Netty,从零开发一个IM服务端》 《跟着源码IM(四):拿起键盘就是干,教你徒手开发一套分布式IM系统》 《跟着源码IM(五) :正确理解IM长连接、心跳及重连机制,并动手实现》 《跟着源码IM(六):手把手教你用Go快速搭建高性能、可扩展的IM系统》 《跟着源码IM(七):手把手教你用WebSocket打造Web端IM聊天 》 《跟着源码IM(八):万字长文,手把手教你用Netty打造IM聊天》 《跟着源码IM(九):基于Netty实现一套分布式IM系统》(* 本文) 10、参考资料 [1] 新手入门:目前为止最透彻的的

68220
  • 广告
    关闭

    即时通信 IM 首购89.9元/月起

    丰富 UI 组件助您极速集成聊天、会话、群组、直播弹幕等完备IM功能,全球接入,全平台跨终端互通,安全可靠,IM 首购0.9折起,复购7.5折起

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

    IM在线客服系统_开源在线客服系统附源码

    在线客服系统及源码:zxkfym.top   什么是在线客服系统?   线客服系统是数字化工作场所的重要工具之一。它用于远程工作的员工之间的沟通和协作,从而使工作更容易、更快。 如何为您的组织选择正确的在线客服系统源码?   当今市场上有许多在线客服系统源码。选择最适合您业务的解决方案并不总是容易的。那么,即时消息解决方案的哪些特性和功能值得关注呢?    首先,如果你的在线客服系统源码能够支持除短信之外的其他通讯功能,那就太棒了,例如,寻找支持视频通话和会议的解决方案。   此外,在线客服系统源码的数据保护和安全性应该是一个重要因素。 因此,安全性是在线客服系统源码考量最重要的方面之一,应该成为您决策选择的指导原则。

    81820

    跟着源码IM(八):万字长文,手把手教你用Netty打造IM聊天

    本文作者芋艿,原题“使用 Netty 实现 IM 聊天贼简单”,本次有修订和改动。 一、本文引言 上篇《跟着源码IM(七):手把手教你用WebSocket打造Web端IM聊天》中,我们使用 WebSocket 实现了一个简单的 IM 功能,支持身份认证、私聊消息、群聊消息。 注:源码请从同步链接附件中下载,http://www.52im.net/thread-3489-1-1.html。 Netty源码和API的在线阅读地址: 1)Netty-4.1.x 完整源码(在线阅读版)(* 推荐) 2)Netty-4.0.x 完整源码(在线阅读版) 3)Netty-4.1.x API文档(在线版 )(* 推荐) 4)Netty-4.0.x API文档(在线版) 三、本文源码 本文完整代码附件下载:请从同步链接附件中下载,http://www.52im.net/thread-3489-1-1.html

    39130

    跟着源码IM(八):万字长文,手把手教你用Netty打造IM聊天

    一、本文引言 上篇《跟着源码IM(七):手把手教你用WebSocket打造Web端IM聊天》中,我们使用 WebSocket 实现了一个简单的 IM 功能,支持身份认证、私聊消息、群聊消息。 要想系统地学习IM开发的方方面面,请继续阅读:《新手入门一篇就够:从零开发移动端IM》 附录、系列文章 《跟着源码IM(一):手把手教你用Netty实现心跳机制、断线重连机制》 《跟着源码IM 手把手教你撸一个Andriod版IM》 《跟着源码IM(三):基于Netty,从零开发一个IM服务端》 《跟着源码IM(四):拿起键盘就是干,教你徒手开发一套分布式IM系统》 《跟着源码IM (五):正确理解IM长连接、心跳及重连机制,并动手实现》 《跟着源码IM(六):手把手教你用Go快速搭建高性能、可扩展的IM系统》 《跟着源码IM(七):手把手教你用WebSocket打造Web 端IM聊天》 《跟着源码IM(八):万字长文,手把手教你用Netty打造IM聊天》(* 本文) (本文同步发布于:http://www.52im.net/thread-3489-1-1.html

    47110

    用户接口和IM表达式(IM 5.6)

    上接IM 5.5。本章为IM系列第五章 使用In-Memory表达式优化查询第六部分用户接口和IM表达式。 · DISABLE 数据库不会将IM表达式(无论是静态还是动态)都填充到IM列存储中。 注: IM表达式不支持依赖于NLS的数据类型。 (IM-4.2 第二部分) 第四章 为IM 启用填充对象之启用和禁用列(IM-4.3 第三部分) 第四章 为IM 启用填充对象之在NO INMEMORY表上指定INMEMORY列属性:示例(IM-4.4 第四部分) 第四章 为IM 启用填充对象之启用和禁用表空间的IM列存储(IM 4.5) 第四章 为物化视图启用和禁用IM列存储(IM 4.6) 第四章 为IM 启用填充对象之强制填充In-Memory 对象:教程(IM 4.7) 第四章 为IM 启用填充对象之为IM列存储启用ADO(IM 4.8) 第五章 使用In-Memory表达式优化查询(IM 5.1) IM表达式的目的(IM 5.2) IM表达式如何工作

    25720

    自已开发IM有那么难吗?手把手教你自撸一个Andriod版简易IM (有源码)

    * 重要提示:本文不是一篇即时通讯理论文章,文章内容全部由实战代码组织而成,如果你对即时通讯(IM)技术理论了解的太少,建议先详细阅读:《新手入门一篇就够:从零开发移动端IM》。 不想看文章的同学,可以直接到Github下载本文源码: 1)原始地址:https://github.com/FreddyChen/NettyChat 2)备用地址:https://github.com 《移动端IM开发需要面对的技术问题(含通信协议选择)》 《简述移动端IM开发的那些坑:架构设计、通信协议和客户端》 《理论联系实际:一套典型的IM通信协议设计详解》 《58到家实时消息系统的协议设计等技术实践分享 有关即时通讯(IM)应用中的消息送达保证机制,可以详细阅读以下文章: 《IM消息送达保证机制实现(一):保证在线实时消息的可靠投递》 《IM群聊消息如此复杂,如何保证不丢不重?》 第一次写技术分享文章,有很多地方也许逻辑不太清晰,由于篇幅有限,也只是贴了部分代码,建议大家把源码下载下来看看。

    90931

    自已开发IM有那么难吗?手把手教你自撸一个Andriod版简易IM (有源码)

    不想看文章的同学,可以直接到Github下载本文源码: 1)原始地址:https://github.com/FreddyChen/NettyChat 2)备用地址:https://github.com/ 52im/NettyChat 接下来,让我们进入正题。 《移动端IM开发需要面对的技术问题(含通信协议选择)》 《简述移动端IM开发的那些坑:架构设计、通信协议和客户端》 《理论联系实际:一套典型的IM通信协议设计详解》 《58到家实时消息系统的协议设计等技术实践分享 有关即时通讯(IM)应用中的消息送达保证机制,可以详细阅读以下文章: 《IM消息送达保证机制实现(一):保证在线实时消息的可靠投递》 《IM群聊消息如此复杂,如何保证不丢不重?》 第一次写技术分享文章,有很多地方也许逻辑不太清晰,由于篇幅有限,也只是贴了部分代码,建议大家把源码下载下来看看。

    58430

    IM表达式的目的(IM 5.2)

    上接IM 5.1,本章为IM系列第五章 使用In-Memory表达式优化查询第二部分IM表达式的目的。 IM表达式的目的 IM表达式通过预先计算计算密集表达式来加速大数据集的查询速度。 IM表达式和物化视图解决了相同的问题:如何避免重复计算表达式。然而,IM表达式具有优于物化视图的优点: · IM表达式可以捕获未持久存储的数据。 (IM-4.2 第二部分) 第四章 为IM 启用填充对象之启用和禁用列(IM-4.3 第三部分) 第四章 为IM 启用填充对象之在NO INMEMORY表上指定INMEMORY列属性:示例(IM-4.4 第四部分) 第四章 为IM 启用填充对象之启用和禁用表空间的IM列存储(IM 4.5) 第四章 为物化视图启用和禁用IM列存储(IM 4.6) 第四章 为IM 启用填充对象之强制填充In-Memory 对象:教程(IM 4.7) 第四章 为IM 启用填充对象之为IM列存储启用ADO(IM 4.8) 第五章 使用In-Memory表达式优化查询(IM 5.1) 山东Oracle用户组(Shandong

    21330

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

    注意:本系列是给IM初学者的文章,IM老油条们还望海涵,勿喷! ,有的只是从IM入门者的角度的思路和实战,适合IM初学者阅读。 2、知识准备* 重要提示:本系列文章主要是代码实战分享,如果你对即时通讯(IM)技术理论了解的不多,建议先详细阅读:《零基础IM开发入门:什么是IM系统?》、《新手入门一篇就够:从零开发移动端IM》。 Netty源码和API的在线查阅地址:1)Netty-4.1.x 完整源码(在线阅读版)(* 推荐)2)Netty-4.1.x API文档(在线版)3、系列文章本文是系列文章的第1篇,以下是系列目录:《 《移动端IM中大规模群消息的推送如何保证效率、实时性?》《现代IM系统中聊天消息的同步和存储方案探讨》《关于IM即时通讯群聊消息的乱序问题讨论》《IM群聊消息的已读回执功能该怎么实现?》

    53910

    IM开发快速入门(一):什么是IM系统?

    2、系列文章目录 《IM开发快速入门(一):什么是IM系统?》(* 本文) 《IM开发快速入门(二):什么是IM系统的实时性? (稍后发布)》 《IM开发快速入门(三):什么是IM系统的可靠性?  (稍后发布)》 《IM开发快速入门(四):什么是IM系统的一致性? (稍后发布)》 《IM开发快速入门(五):什么是IM系统的安全性?  (稍后发布)》 《IM开发快速入门(六):什么是IM系统的的心跳机制? (稍后发布)》 《IM开发快速入门(七):如何理解并实现IM系统消息未读数?  下面这些场景是我们大家都熟悉的,都用到了IM技术: 1)微信、qq、钉钉等主流IM应用:这是IM技术的典型应用场景; 2)微博、知乎等社区应用:它们利用IM技术实现了用户私信等点对点聊天; 3)抖音、快手等直播 以下文章适合IM架构设计入门,有兴趣可以读一读: 《浅谈IM系统的架构设计》 《简述移动端IM开发的那些坑:架构设计、通信协议和客户端》 《从游击队到正规军(一):马蜂窝旅游网的IM系统架构演进之路》

    1.5K10

    数据库如何填充IM表达式(IM 5.4)

    上接IM 5.3。本章为IM系列第五章 使用In-Memory表达式优化查询第四部分数据库如何填充IM表达式。 相关概念(续)(IM-1.2) 第二章 Oracle Database In-Memory 体系结构(上) (IM-2.1) 第二章 In-Memory 体系结构 (IM-2.2) 第二章 IM 体系结构 (IM-4.2 第二部分) 第四章 为IM 启用填充对象之启用和禁用列(IM-4.3 第三部分) 第四章 为IM 启用填充对象之在NO INMEMORY表上指定INMEMORY列属性:示例(IM-4.4 第四部分) 第四章 为IM 启用填充对象之启用和禁用表空间的IM列存储(IM 4.5) 第四章 为物化视图启用和禁用IM列存储(IM 4.6) 第四章 为IM 启用填充对象之强制填充In-Memory 对象:教程(IM 4.7) 第四章 为IM 启用填充对象之为IM列存储启用ADO(IM 4.8) 第五章 使用In-Memory表达式优化查询(IM 5.1) IM表达式的目的(IM 5.2) IM表达式如何工作

    20930

    第四章 为IM 启用填充对象之为IM列存储启用ADO(IM 4.8)

    (续)(IM-1.2) 第二章 Oracle Database In-Memory 体系结构(上) (IM-2.1) 第二章 In-Memory 体系结构 (IM-2.2) 第二章 IM 体系结构:CPU 架构:SIMD向量处理(IM-2.3) 第三章 启用和调整IM列存储的大小(IM-3.1) 第四章 为In-Memory 启用填充对象(IM-4.1 第一部分) 第四章 为In-Memory 启用填充对象 (IM-4.2 第二部分) 第四章 为IM 启用填充对象之启用和禁用列(IM-4.3 第三部分) 第四章 为IM 启用填充对象之在NO INMEMORY表上指定INMEMORY列属性:示例(IM-4.4 第四部分) 第四章 为IM 启用填充对象之启用和禁用表空间的IM列存储(IM 4.5) 第四章 为物化视图启用和禁用IM列存储(IM 4.6) 第四章 为IM 启用填充对象之强制填充In-Memory 对象:教程(IM 4.7) 本篇为IM系列的第四章:为IM 启用填充对象之为IM列存储启用ADO(IM 4.8) 为IM列存储启用ADO 信息生命周期管理(ILM)是一组用于管理从创建到归档或删除的数据的过程和策略

    23420

    Websocket IM聊天教程-教你用GoEasy快速实现IM聊天

    经常有朋友问起GoEasy如何实现IM,今天就手把手的带大家从头到尾用GoEasy实现一个完整IM聊天,全套代码已经放在了gitee。 今日的前端技术发展可谓百花争鸣,为了确保本文能帮助到使用任何技术栈的前端工程师,Demo的源码实现上选择了最简单的HTML+JQuery的方式,所以,不论您是准备用Uniapp开发移动APP,还是准备写个小程序 我们当前的版本是使用html+jquery完成,如果希望再开发一个Uniapp实现的小程序或者app,只需要用Uniapp画个新外壳,对controller层做一些修改,就可轻松完成一个小程序或者APP版的IM 别着急,当然有全套代码拉,如果放个zip文件的下载连接,显得B格太低,老规矩,gitee见: https://gitee.com/goeasy-io/GoEasyDemo-IM-Chat IM聊天 Websocket直播间聊天室教程-GoEasy快速实现聊天室 微信小程序使用GoEasy实现websocket实时通讯 Uniapp使用GoEasy实现websocket实时通讯 IM聊天教程

    1K00

    IM开发快速入门(二):什么是IM系统的实时性?

    在这些风格迥异的应用场景下,IM技术所呈现出来的功能形态虽有不同,但“实时性”这个技术特征并无区别。 那么,对于技术门外汉来说,到底什么是IM的“实时性”?该如何理解它?这就是本文想要讨论的主题。 正因为如此,理解Web端即时通信技术的演进,也就自然而然能循序渐进地体会到IM系统中的“实时性”了。所以本文将围绕Web端即时通讯技术,为你展开IM“实时性”这个话题。 友情提示:本系列文章侧重于理论概念的讲述,篇幅有限,点到即止,如需系统、深入、具体地学习IM技术的方方面面,请从此文入手:《新手入门一篇就够:从零开发移动端IM》(史诗级文章,适合从入门到放弃)。 总结一下就是,短轮询这种模式对于IM技术大拿来说,显的非常low,因为技术实现实在是简单粗暴。 3、长轮询技术 正如你所见,用短轮询技术来保证IM的实时性,确实难说优雅。 6、本文小结 本文以Web端即时通讯技术的演进为例,从短轮询到长轮询,再到WebSocket,理论联系实际地讲解了Web端IM“实时性”的技术变迁,从而帮助读者理解IM中“实时性”这个最为关键的技术特征

    68441

    关注

    腾讯云开发者公众号
    10元无门槛代金券
    洞察腾讯核心技术
    剖析业界实践案例
    腾讯云开发者公众号二维码

    相关产品

    • 即时通信 IM

      即时通信 IM

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

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭

      扫码关注腾讯云开发者

      领取腾讯云代金券