小方工作室第三款产品:开源企业IM「FlamingoIM」全面介绍"

admin 2026-10-14 15:51:10 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

小方工作室第三款产品:开源企业 IM「FlamingoIM」全面介绍

原创

张小方
张小方

CppGuide

2026年10月12日 14:11
上海

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

开源 · 企业即时通讯 · C++

FlamingoIM

一套从网络库到界面控件,全部用 C++ 自研的开源企业即时通讯系统

Markdown 编辑器:左边写,右边实时预览

群协作,以及「帖子群」

群聊里有 @提醒、群文件、群公告(包括新成员必须先读的「入群必读」)、群备忘、群问答和接龙;邀请入群、加群链接、入群审批、禁言、管理员与群权限设置、转让群主也都齐全。

群聊窗口,右侧是成员与群资料边栏

帖子群是一种特别的群:没有聊天流,只有帖子。适合发通知、收集意见、做专题讨论——发帖人可以追加补充,其他人可以两级留言、点表情回应,重要的内容不会被聊天消息冲走。

帖子群:左边是帖子列表,右边是帖子详情与留言

音视频、远程桌面与屏幕共享

一对一语音视频、群语音视频、远程桌面都内置在客户端里,不需要另装会议软件。

群语音通话

屏幕共享做得比较完整:参与的人可以在画面上标注、开白板,可以申请控制共享者的键盘鼠标;其他人也可以申请共享自己的屏幕,由主持人审批;还能设置密码、生成分享链接。屏幕录制支持本地录制,也支持服务器端的云端录像。

屏幕共享:左上角的 P2P 标记表示画面走的是点对点直连

语音字幕与文字识别,都在本机完成

录屏和屏幕共享时可以打开实时字幕,中英文混合识别、自动加标点;录完之后在字幕编辑器里逐句校对,再导出为烧录字幕的 MP4、带字幕轨的 MP4 或 SRT 文件。识别全部在本机离线完成,会议内容不会被发到任何云服务。

字幕编辑器:左边预览录像,右边逐句校对字幕

截图支持全局快捷键(默认 Alt+Z),截完可以直接标注、发送;截图和聊天里的图片都能一键识别出文字,使用的是 Windows 自带的识别引擎。

截图后直接标注,工具栏里有「识别文字」

文件:从发文件到共享整个磁盘

发文件、发整个文件夹都可以,服务器上已有的文件再次发送会秒传。更进一步,可以把本机的磁盘、文件夹或文件共享到会话里,成员像逛资源管理器一样浏览、下载、上传;有人下载、上传或改动文件时,分享者会收到右下角的提醒。

浏览同事共享出来的文件夹

聊天记录管理器

跨会话搜索、按时间轴浏览、单独的文件库和图片库,本机存储占用多少一目了然,聊天记录还能导出备份。

聊天记录管理器

五种界面语言

界面支持简体中文、繁體中文、English、日本語、한국어 五种语言,在登录窗右下角或「系统设置 → 通用 → 语言」里切换,重启后生效,也可以设成跟随 Windows 的显示语言。切换语言时,界面字体也会换成更适合这种语言的字体;通话、屏幕共享、文件共享这些插件窗口和升级程序,同样都翻译好了。

还有一个细节:群里的系统提示(比如谁退出了群聊、群主转让给了谁)是由每个人的客户端按自己的界面语言生成的。同一个群里,用中文界面的同事看到中文,用英文界面的同事看到英文。

左上是登录窗里的语言菜单,其余是同一个「关于」窗口的五种语言版本

还有这些

◆ 换上自己公司的名字 窗口标题栏里的产品名可以改成自己公司的名字:主面板和各个窗口、提示框的标题,登录窗的品牌大字,「关于」「退出」里的名称都会跟着变,标语和版权文字也能一起换。只要改一个配置文件,不用改代码,也不用重新编译。

◆ 机器人 个人机器人可以在你忙的时候替你自动回复;群机器人按关键词规则回复,也能接收外部系统的推送。

◆ 密聊 端到端加密,消息只保存在内存里、不写入本地数据库,聊天窗口禁止被截屏。

◆ 备忘与提醒 聊天消息可以一键存为备忘,到点弹出提醒。

◆ 锁屏 离开座位时设一个临时密码锁住屏幕,有五种锁屏动画,开头那只火烈鸟就是其中之一。

◆ 自动升级 管理员在控制台发布新版本后,客户端自动提示、下载并安装。

管理控制台

控制台分两种管理员。企业管理员负责本企业:仪表板、组织架构与员工、服务号、在线用户、功能开关、敏感词、文件共享管理与审计、企业问答、企业机器人、审计日志。平台超级管理员负责整个平台:新增、审核、停用企业,发布平台公告和客户端新版本。

管理控制台:按企业打开或关闭各项功能

PART 04

架构与技术

ARCHITECTURE

服务端由三个独立的服务组成,各管一摊:chatserver 负责登录、消息和各类信令,同时给管理控制台提供 HTTP 接口;fileserver 负责聊天文件、升级包,以及文件夹传输和文件共享的中转;imgserver 负责图片,以及音视频、远程桌面、屏幕共享的中转和 P2P 地址探测。

总体服务架构(点开大图查看端口与模块细节)

◆ 网络框架 Muduo 风格的多 Reactor 模型,Linux 用 epoll,Windows 用 select;三个服务共用这套框架,它也可以单独拿来写别的服务。

◆ 通信协议 二进制帧头加 JSON 包体,包体较大时用 zlib 压缩;连接建立后先用 X25519 交换密钥,之后每一帧都用 XChaCha20-Poly1305 加密(libsodium)。

◆ 数据库 MySQL 与 SQLite 两种后端,同一份程序靠配置项切换,首次启动自动建库建表。

◆ 机器人引擎 运行在独立线程上,支持规则回复、Webhook 和调用外部 HTTPS 服务,不占用处理客户端连接的线程。

PC 客户端采用「主程序 + 插件」的结构:音视频、文件共享、密聊、帖子群、截图、文字识别、语音字幕、锁屏等功能各在一个 DLL 里,分启动时、首次登录后、首次使用时三批加载。某个 DLL 缺失或加载失败,只会隐藏对应功能的入口,其余功能照常使用。

PC 客户端模块架构:主程序与 13 个插件 DLL

PART 05

测试与文档

QUALITY

1300+

服务端单元测试用例(doctest)

5000+

客户端单元测试用例(Catch2)

70+

协议与功能设计文档

44 章

图文使用帮助

仓库的 docs 目录下有七十多份协议与功能设计文档,记录了每个方案的考虑与取舍;使用帮助分员工、企业管理员、平台管理员三类读者,配有大量截图。对想读源码的人来说,这些文档能省下很多摸索的时间。

PART 06

适合谁,怎么上手

GET STARTED

◆ 想自建内部通讯工具的团队 数据放在自己的服务器上,默认用 SQLite,几条命令就能跑起来;窗口标题栏还能换成自己公司的名字。

◆ 学习 C++ 服务器开发的同学 从多 Reactor 网络库、协议设计、数据库线程池,一路读到具体的业务代码。

◆ 学习 Windows 客户端开发的同学 自绘控件库、插件化架构、音视频采集与屏幕共享,都有完整的实现可以参考。

服务端在 Linux 或 WSL 上编译、启动,只需要下面几条命令(默认使用 SQLite,不用装数据库):

编译服务端

cd flamingoserver

cmake -S . -B build-linux -DCMAKE\_BUILD\_TYPE=Release -DWITH\_MYSQL=OFF

make -C build-linux -j$(nproc)

启动三个服务(-d 表示以守护进程运行)

./build-linux/fileserver -d

./build-linux/imgserver -d

./build-linux/chatserver -d

chatserver 第一次启动时会自动建库建表,并创建一个默认企业和一个平台超级管理员。客户端用 Visual Studio 2022 打开 flamingoclient/FlamingoClient.sln 编译即可,员工可以在注册窗口按公司名自助注册。详细步骤见仓库的 README。

源码地址

https://github.com/balloonwj/flamingo

https://gitee.com/balloonwj/flamingo

在 GitHub 搜索 flamingo 或复制上面的地址即可访问。欢迎 Star、提 Issue,也欢迎把它用到你的团队里。

技术交流:加微信 easy\_coder(备注 flamingo)邀请进群,或加 QQ 群 729995516。


小方工作室第三款产品:开源企业IM「FlamingoIM」全面介绍" 网络安全文章

小方工作室第三款产品:开源企业IM「FlamingoIM」全面介绍"

FlamingoIM是开源企业即时通讯系统,全栈C++自研,覆盖组织架构通讯录、单群聊、音视频、远程桌面、屏幕共享、文件共享、机器人、敏感词审计等六十多项功能。服务端支持Linux与Windows,客户端为原生Windows程序,管理控制台支持企业管理员与平台超级管理员。代码完全开源,适合直接部署或学习C++服务器与Windows客户端开发。
Ledger供应链植入事件全记录:设备还没到手,助记词可能已经不是你的了" 网络安全文章

Ledger供应链植入事件全记录:设备还没到手,助记词可能已经不是你的了"

Ledger授权经销商CryptoBilis被植入恶意硬件模块,导致用户助记词被窃取,损失估算超9000万美元。植入物藏在屏幕垫片位置,通过屏幕数据线窃取助记词并经LTE/eSIM外传,正品校验无法检测物理篡改。建议用户从官方渠道购买、初始化时确认助记词现场生成、不拍照不联网,并警惕二次钓鱼攻击。
杀毒软件亮着绿灯却瞎了这周安全圈四件大事挨个说" 网络安全文章

杀毒软件亮着绿灯却瞎了这周安全圈四件大事挨个说"

本周安全圈四件大事:LevelBlue披露BigDiskBuster概念验证技术可让WindowsDefender病毒库停止更新但绿灯仍亮,无CVE无补丁;网络安全并购创单季117笔纪录,买家多为非同行;ATM恶意软件Ploutus-D主犯落网,涉案超1500起;攻击者通过高管家人设备绕过防线。文章提供两个自查脚本和四条行动建议,强调信任被钻空子的核心教训。
评论:0   参与:  0