imfire即时通讯系统构建(前言)

author author     2022-08-02     549

关键词:

缘起termtalk

  一切起源于我对蘑菇街termtalk开源IM系统源代码的好奇,termtalk简称tt。无论如何,都应该先向tt致敬,开源实属不易。看了一些分析tt架构的文章,感觉还不错,说是能支持高并发高可用的。听说有一些公司也借用了该开源代码做产品,那tt应该还是不错的。但是正等我去打开tt服务端源码向学习一下的时候,感觉代码中不尽如意的地方不少了。看得不算仔细,但是架构中单点服务的位置太多了,例如route server只有一个,im客户端发的每一个消息都会广播到所有的msg server而不是目标用户的msg server,这些都对整个系统有严重负面影响。

 

再造一个新的IM

 再造一个im,这是一个重复造轮子的过程。想凭一己之力超越腾讯qq的那是不现实的,但是弄出一个轻量级多端im这个可以有。我主要基于如下理由开展这一项目:

  • 国外有很多好的开源im,国内目前似乎没有(有的告诉我一下),tt算不错,但是问题还很多。
  • 平时多在windows平台开发,接触其他平台(特别是linux)的机会不多,趁此机会练手。
  • 深入实践架构设计。

命名为ImFire的IM

  名字并不重要,正所谓“不看广告看疗效"。目前,这个项目还是在很初级的阶段,在之后的随笔中,我将陆续分享我在开发Imfire中的需求设计,架构设计,具体实现,和碰到的各种问题。望大家共同见证。

   

imfire即时通讯系统构建(架构)

msgServer集群(ms)设计作用:该服务主要提供客户端的接入服务。每个ms维护当前接入用户的用户状态和心跳,每个ms地位是对等的。设计考虑:ms之间不会直接交互,减少交互的复杂度。在用户数量增大的情况,只需要简单增加m... 查看详情

构建 Android XMPP 即时通讯工具和服务器示例 [关闭]

】构建AndroidXMPP即时通讯工具和服务器示例[关闭]【英文标题】:BuildAndroidXMPPinstantmessengerandserverExample[closed]【发布时间】:2015-08-2908:53:24【问题描述】:背景我想了解即时通讯工具,包括安卓应用和服务器。在我的第一个想法中... 查看详情

国内开源的即时通讯框架(endv.cn)(前言)

如题:国内开源类似QQ的即时通讯框架(endv.cn) 出于在企业管理方面遇到的一些瓶颈问题,特别是在数据收集、统计与分析,大数据处理,时时监控跟踪,风险分析、成本控制等方面遇到的很多数据信息问题等,很多管理软件... 查看详情

基于springreactor3构建的即时通讯api。

技术栈Rmessage是采用Reactor3,基于reactor-netty项目构建的实时消息推送api。什么是Reactor3?Reactor是一个用于JVM的完全非阻塞的响应式编程框架,具备高效的需求管理(即对“背压(backpressure)”的控制)能力。它与Java8函数式API直接集... 查看详情

即时通讯开发如何构建一套移动端消息推送系统

消息推送作为移动端APP运营中的一项关键技术,已经被越来越广泛的运用。本文追溯了推送技术的发展历史,剖析了其核心原理,并对推送服务的关键技术进行深入剖析,围绕消息推送时产生的服务不稳定性,... 查看详情

如何搭建一个自己的im即时通讯聊天软件?

如何搭建一个自己的IM即时通讯聊天软件?搭建一个自己的IM即时通讯聊天软件的框架如下:1、CIM中的各个组件均采用SpringBoot构建。2、采用Netty+GoogleProtocolBuffer构建底层通信。3、Redis存放各个客户端的路由信息、账号信息、在线... 查看详情

linkedin即时通信系统的优化

前言LinkedIn的即时通信系统目前单台机器可以处理数十万的持久连接,这是不断调优的结果。最近,他们在官网博客中发布了优化过程,介绍了即时通信系统的技术选型、调优的重点。基础技术构成即时通信技术的基本要求就是s... 查看详情

Rails 的即时通讯实现?

】Rails的即时通讯实现?【英文标题】:instantmessengerimplementationforrails?【发布时间】:2012-03-1202:42:46【问题描述】:我已经搜索了一段时间,研究了几种技术来为ruby​​onrails应用程序构建一个简单的即时消息系统。这似乎很复... 查看详情

im即时通讯构建企业协同生态链

...视构建连接用户、员工和合作伙伴的生态平台,利用即时通讯软件解决企业内部的工作沟通、信息传递和知识共享等问题。 但随着企业的发展和应用的深入,大多数企业不能仅满足于传统的SAAS类或OA类等办公产品,... 查看详情

集成融云即时通讯碰到的一些问题

集成融云即时通讯碰到的一些问题前言公司产品需要新增即时通讯的模块,经过调研后使用融云的即时通讯SDK由于以前没有做过相关聊天类的项目,在开发的时候碰到了很多坑,下面会将碰到的问题和解决方案记录下来以做备份... 查看详情

如何写一个即时通讯软件?

...03-09 回答者:网易(杭州)网络有... 10如何编写一个即时通讯软件答:可以用bmob做后端,有即时通讯的demo昨天下班前发布了最新的Bmob_IM_V1.1.2版本的SDK和应用Demo,还未正式通知大家,但还是有人察觉到了,那么,这一次版... 查看详情

一款java开源的springboot即时通讯im聊天系统

...;客服聊天等。今天,就来给大家分享一个开源的即时通讯系统。如对文章不感兴趣可直接跳至文章末尾,有获取源码链接的方法。但文章内容是需要你简单的过一遍的,相信你能get到不少骚操作。项目简介该项目是... 查看详情

基于xmpp的即时通信系统的建立

...据的协议。在此基础上,XMPP协议已经被用来构建大规模即时通信系统、游戏平台、协作空间及语音和视频会议系统。XMPP由几个小的构造块组成,并在此基础上扩展出了更多的构造块。XMPP中有众多系统:发布-订阅服务、多人聊... 查看详情

如何快速开发一个跨平台的带即时通讯功能的app?

前言目前,即时通讯在app中逐渐成了不可或缺的功能,尤其是在疫情期间,音视频会议功能更是火了一把,但是想自己开发即时通讯功能,却一点都不简单,如果用原生开发的话,那么Android、iOS就需要两套代码,时间成本太高... 查看详情

如何快速开发一个跨平台的带即时通讯功能的app?

前言目前,即时通讯在app中逐渐成了不可或缺的功能,尤其是在疫情期间,音视频会议功能更是火了一把,但是想自己开发即时通讯功能,却一点都不简单,如果用原生开发的话,那么Android、iOS就需要两套代码,时间成本太高... 查看详情

即时通讯场景下安全合规的实践和经验

前言在监管趋紧的形式下,即时通讯场景会遇到很多安全合规领域的挑战,如何满足这些安全合规的要求,如何保护用户的隐私安全,是一件非常有挑战的事情。为给大家提供相关的经验及参考,「声网开发... 查看详情

即时通信系统openfire分析之八:集群管理

前言在第六章《路由表》中,客户端进行会话时,首先要获取对方的Session实例。获取Session实例的方法,是先查找本地路由表,若找不到,则通过路由表中的缓存数据,由定位器获取。路由表中的缓存,如下:publicRoutingTableImpl(){... 查看详情

实战如何亲手搭建一个分布式im(即时通讯)系统

前言老读者应该还记得我之前分享过一篇《设计一个百万级的消息推送系统》;虽然我在文中有贴一些伪代码,依然有些朋友希望能直接分享一些可以运行的源码;这么久了是时候把坑填上了。目录结构:    本文... 查看详情