最早是初中时用腾讯qq开始的程序员梦想,当时认为聊天软件是一见很高大上的事情。
后面做了嵌入式开发、服务器开发,k8s云原生,qt低代码工具。 我想应该是时候去实现一个自己的聊天软件了。

聊天软件名称:

rabbit,中文:兔子

实现功能:

注册用户
登录
注销用户
加好友
加群
文本单聊
文本群聊
gif特效表情包
语音通话
视频通话
文件传输
在线状态显示、隐身

设计组件:

部署环境

k8s

服务器

使用微服务的方式实现。
console组件用于注册/发现服务、其它服务(注册服务、登录服务、聊天服务、语音服务、视频服务、文件服务等独立进程)部署在k8s中、存储用pvc/pv挂载存储集群

客户端

前期自己单干,只能先用qt写pc客户端,移动客户端后面找人写,或自己一边学习一边写。

实现过程:

文件服务器
图片服务器
注册服务器
登录服务器
加好友服务器
加群服务器
聊天服务器
webrtc服务器

gitee代码托管地址:

https://gitee.com/smallkingfisher/rabbit-im

用于部署服务器的k8s集群:

服务器代码框架如下:

QT 客户端界面如下:
好友/群组列表界面:

聊天界面:

开源IM软件----rabbit相关推荐

  1. 开源项目管理软件,团队协作配合新方式

    如果你对开源项目管理软件感兴趣,又需要敏捷开发功能,建议试试智办事. 智办事契合团队OKR管理,支持多任务创建,分解成父子级任务,帮助每个人更直观看到各种内容和进展情况,数据全流程沉淀,方便后续查找和 ...

  2. 跟我学,轻松安装开源ERP软件Open ERP

    跟我学,轻松安装开源ERP软件Open ERP http://www.linuxeden.com/html/solution/20090701/66521.html Open ERP原名Tiny ER ...

  3. 收集的网络上大型的开源图像处理软件代码(提供下载链接)

    要写好一个图像处理软件,仅靠自己看书是完全不够的,要多方面学习,借鉴前人的经验,要集思广益.多面出击.如今网络发达,图像学的资料其实也到处都是.只是往往个人能力或精力有限,在短时间内无法找到那些也许藏 ...

  4. 安装linux办公软件,Centos7如何安装开源办公软件Libreoffice

    在Centos7安装了WPS,但是用了没两月就出问题,无法正常使用.(准确来说,安装的WPS一直都有各种问题存在,但是没有影响到主要功能也就将就着用,后来是直接输入不了文字) 既然是开源系统,自然而然 ...

  5. puppet开源的软件自动化配置和部署工具——本质就是CS,服务端统一管理配置...

    1.  概述 puppet是一个开源的软件自动化配置和部署工具,它使用简单且功能强大,正得到了越来越多地关注,现在很多大型IT公司均在使用puppet对集群中的软件进行管理和部署,如google利用p ...

  6. 这13个开源GIS软件,你了解几个?【转】

    泰伯网有看点的空间地理信息资讯都在这,你还在等什么? 这些开源GIS软件,你了解几个?本文内容部分来源于一份罗列了关于GIS软件应用的文章,笔者将其编译整合. 地理信息系统(Geographic In ...

  7. 【资讯】K8S生态再添一员,Rancher发布开源HCI软件Harvester、及其安装教程

    原文出处: K8S生态再添一员,Rancher发布开源HCI软件Harvester https://gitee.com/mirrors/harvester https://github.com/ran ...

  8. 54款开源服务器软件(内容管理、数据库、电子商务、邮件服务器、文件传输、操作系统、安全、小公司服务 .

    本文逐一介绍了内容管理.数据库.电子商务.邮件服务器.文件传输.操作系统.安全.小公司服务器.服务器日志文件监控和分析.存储.虚拟化.Web服务器.维基/协作及其他方面的开源服务器软件. 据斯坦福大学 ...

  9. 开源项目管理软件 禅道

    一.禅道(ZenTao)是什么? 禅道是第一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理.计划管理.发布管理.文档管 ...

最新文章

  1. jquery.raty评星插件
  2. markdown 图片居中_Markdown常用语法汇总
  3. 计算机术语所见即所得,计算机应用基础作业四(16页)-原创力文档
  4. linux内核杂记(11)-进程调度(6)
  5. 启明云端分享| 盘点 ESP32-S3到底有哪些功能特性
  6. 当鼠标滑过文本框自动选中输入框内容JS代码
  7. java md5.computehash_c# – ObjectDisposedException使用MD5 ComputeHash时
  8. C语言中内存分布及程序运行中(BSS段、数据段、代码段、堆栈)
  9. .NET FM的未来计划
  10. 医动力Android基于CC组件化框架的探索与实践
  11. leetcode 1482. 制作 m 束花所需的最少天数(二分查找)
  12. python mockito arg_that_wqingxiao
  13. 没有学历文凭,如何成为一名优秀的 Java 程序员?
  14. Illustrator 教程,如何在 Illustrator 中设计插画?
  15. dosbox运行C语言,DOSBox-DOS模拟器-DOSBox下载 v0.74官方版-完美下载
  16. ubuntu1604安装网卡驱动 联想g510
  17. 制作ext4文件系统
  18. ffmpeg使用心得
  19. 【C++ 程序】 随机数
  20. 玩转全志F1C200s 烧录 flash 镜像

热门文章

  1. 中国人民公安大学 网络对抗 实验二
  2. 量化投资-基本面模型-螺纹多因素模型
  3. 嵌入式Linux驱动开发1---环境搭建
  4. 通过API接口获取数据至后台
  5. HTML中的多行输入框:textarea标签、cols属性、rows属性。
  6. 怎样选择使用特殊素材的乒乓球底板
  7. LeetCode-Python-634. 寻找数组的错位排列(数学 + 错排公式)
  8. Elsevier投稿
  9. [SRR-FSD] Semantic Relation Reasoning for Shot-Stable Few-Shot Object Detection(CVPR. 2021)
  10. T14 Gen2 或 P14s Gen2 安装Ubuntu18