去中心化的内网聊天软件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

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

相关推荐
SoStraw14 天前
基于P2P开发一个聊天桌面软件
p2p·quic·文件共享·打洞·通信·文件传输·聊天软件
jeff聊企业数字化20 天前
私有化即时通讯选型指南:兼顾安全与高效
go·业界资讯·即时通讯
恒拓高科WorkPlus20 天前
BeeWorks 私有化安全协作平台白皮书(2026 版)
即时通讯·白皮书·协作平台·协作平台白皮书·即时通讯白皮书
恒拓高科WorkPlus25 天前
团队协作和即时通讯一体化的软件,目前哪个用户体验最好?
即时通讯·私有化的企业 im·企业 im
恒拓高科WorkPlus1 个月前
信创即时通讯怎么选?BeeWorks 的全栈适配与安全实践
即时通讯·信创即时通讯
恒拓高科WorkPlus1 个月前
私有化视频会议怎么选?BeeWorks Meet 的安全与高效之道
私有化部署·即时通讯·视频会议
hellojackjiang20111 个月前
社交场景下的统一即时通讯im消息流交互层模块化技术实践
即时通讯·im开发·架构设计
hellojackjiang20113 个月前
鸿蒙Next原生IM即时通讯RainbowTalk,纯ArkTS编写,基于开源MobileIMSDK框架
网络编程·信息与通信·harmonyos·即时通讯
CherishXt3 个月前
对接腾讯IM,实现个人业务系统页面按钮直接跳转到和用户的聊天页面(不需要加好友)
uniapp·即时通讯·im