去中心化的内网聊天软件Lachat是如何实现的?

前段时间,我们接了个小单,一个部队单位需要一款内网使用的即时通讯软件,方便内网的工作人员办公交流。要求去中心化,即不需要部署服务端和数据库,也不需要注册账号,不需要登录账号密码,开箱就能用。并且,要求同时支持Windows和信创系统(银河麒麟、统信UOS)。

在洽谈需求时,我们就想到了曾经的飞秋,但是,对方说飞秋的UI还是二十多年前的,太丑了,而且功能方面还有些特殊的需求也不能满足。于是,我们接下了这个单,花了两个月的时间做出来了。在交付后,我们将特殊的功能删掉,并且将UI改成通用化的,并取名为 Lachat(拉洽),现在分享出来免费给大家使用(永久免费使用)。

一. Lachat 效果展示

先看看Lachat的UI效果。 首先是聊天的主界面:

接下来看看个人信息页面:

最后再看看查看聊天记录页面:

二. 内网聊天软件的优点

相比于公网的聊天软件,去中心化的内网聊天软件 Lachat 有诸多优点。

1. 完全去中心化,无需服务器,部署零成本

不用买服务器、不用运维、不用数据库、不用后台管理。内网随便几台电脑连上同一局域网就能直接聊天。断电、重启、设备增减都不影响整体使用。

2. 数据绝对不出内网,极高安全性

消息不经过任何第三方服务器,不留云端日志,不怕被监控、爬取、泄露,满足等保、涉密信息系统基本要求。

3. 不依赖外网,断网依旧可用

即使完全物理隔离,只要在同一网段就能通信。适合封闭内网、临时应急指挥、野外局域网组网。

4. 无监管风险,不留痕

没有中心节点,无法被单点封禁。消息可设置本地销毁、不留记录。适合敏感场景内部沟通。

5. 低延迟、高抗毁

Lachat 使用 P2P 直连,延迟极低。任意节点掉线不影响其他节点通信,比传统 CS 架构更稳定、更难瘫痪。

三. Lachat 技术实现原理

1.技术选型

首先是技术选型:

(1)为了同时支持Windows和Linux信创国产系统,那当然是选择.NET Core 系列,比如.NET 8。

(2)UI框架可以选 Avalonia 。

(3)本地数据存储选择Sqlite。

2.主要技术问题

去中心化的内网聊天软件主要需要解决如下几个问题:

(1)节点发现:新节点加入内网后,自动发现其他在线节点,并且主动告诉其它节点自己上线了。

(2)对等通信:任意两个节点直接建立P2P连接,消息直连传输,不经过任何中间节点。

(3)动态维护:节点上线/下线实时同步,任意节点故障不影响整个网络正常运行。

(4)本地存储:所有消息、联系人资料、群组资料、配置等,均存储在本地设备。

(5)分布式资料同步:后上线的节点,能自动同步最新的联系人资料、群组资料(比如有组员加入或退出、群资料修改)等。

3.技术方案

我们看看上述的这些问题在技术层面要怎么解决。

(1)使用UDP广播/组播,新上线的节点可以在局域网内广播:"我上线了"。

(2)其它已上线节点收到新节点的上线广播通知时,就主动与新节点建立P2P连接,并把自己的信息告知新节点。

(3)使用心跳机制,来即时发现下线的节点。

(4)用户资料、群组资料、聊天记录存储到Sqlite数据库;其它配置信息可单独存储于一个json格式的配置文件中。

(5)分布式资料同步是最麻烦的,我们的方案是使用操作日志来重建和同步最新的资料状态。

四. 如何在信创系统上运行 Lachat

Lachat 信创国产Linux客户端推荐使用:银河麒麟 V10 SP1、统信 UOS V22 。

根据CPU架构下载对应傲瑞通客户端压缩包,并解压(注意:直接在国产Linux电脑上解压,不要在Windows上解压之后再拷贝到国产Linux)。在解压目录下,找到Lachat.sh文件:

双击该文件,会弹出如下提示框:

点击【直接运行】按钮,接下来会出现Lachat的主窗口。

五. Lachat 程序下载

(1)Windows端:Lachat.msi

(2)信创国产端:Lachat-X64.zipLachat-Arm64.zipLachat-Loongarch64.zip

欢迎有需要的朋友用起来,可以联系我们多提宝贵建议,谢谢。

相关推荐
企业通信技术笔记3 天前
私有化企业IM验收指南:内网专网、信创终端与OA/ERP/MES消息链路测试清单
即时通讯·企业im·私有化im·私有化即时通讯·内网即时通讯
飞函安全14 天前
企业即时通讯的离线消息如何可靠补发:从“发出去”到“可确认送达”
私有化部署·即时通讯·消息可靠性
海水冷却16 天前
uniappx 实现 IM 聊天:SDK 支持现状、三条集成路径与踩坑实战
uniapp·即时通讯
huijingjituan4318 天前
【专属IM即时通讯平台|让沟通更简单】
即时通讯·极光鸟·灰鲸im·环信im·聊天软件im·三条im·海鸥im
huijingjituan4319 天前
【三方聊天软件工具|定制开发与私有化部署】
安全·即时通讯·对话·聊天·极光鸟
huijingjituan4320 天前
【企业级IM即时通讯系统|定制开发与私有化部署】
安全·即时通讯·对话·聊天·极光鸟
要开心吖ZSH22 天前
腾讯 IM × TRTC 联动实战:后端如何撑起一次视频问诊(混流录制篇)
java·音视频·腾讯云·健康医疗·即时通讯·im
要开心吖ZSH22 天前
腾讯 IM 前端对接小白教程:医患一对一聊天(含自定义报告卡片)
vue·健康医疗·即时通讯·im
hellojackjiang20111 个月前
移动端实时音视频聊天框架 RainbowAV v2.2.7发布
webrtc·实时音视频·即时通讯
XiaoLin laile2 个月前
信创IM安全合规的焦虑与重构
即时通讯·安全合规·数据主权·信创im·选型标准