SFTP 大文件传输优化:单流、分块与并发 Worker 封面

SFTP 大文件传输优化:单流、分块与并发 Worker

2026-05-187 min read

桌面端做 SFTP 文件管理时,最先遇到的问题通常不是“能不能上传下载”,而是“传大文件时 UI 会不会卡、进度能不能显示、能不能取消”。 如果把文件内容读到前端,再通过 Tauri IPC 传给 Rust 后端,会有明显问题: 大文件会占用大量前端内存。 Base64 或 JSON 传输会产生额外开销。 前端渲染线程容易被拖慢。 传输进度和取消不好做。 这个智能终端项目里的处理方式是:前端只把本...

SFTP
Rust
Tauri
性能优化
SSH 命令什么时候算执行完成:从提示符判断到完成标记 封面

SSH 命令什么时候算执行完成:从提示符判断到完成标记

2026-05-188 min read

普通 SSH 终端里,用户看见提示符回来,就知道上一条命令执行完了。但程序没有这么简单。 智能终端需要把命令输出继续交给 AI 分析,所以必须判断一条命令什么时候结束。如果判断早了,AI 会拿到不完整输出;判断晚了,界面会一直处于“等待命令执行完成”;如果遇到 、、网络设备分页输出,还可能卡在交互界面里。 一开始最直观的方案是匹配 Shell 提示符,比如: 这个方案能处理一部分情况,但不够稳。 ...

SSH
xterm
AI
Tauri
终端
Tauri + Rust + React 实现智能终端桌面应用 封面

Tauri + Rust + React 实现智能终端桌面应用

2026-05-187 min read

做一个 SSH 桌面终端,难点不在“连上 SSH”这一件事,而在于连接之后的状态管理。 终端不是普通表单。它有持续输出、用户输入、窗口尺寸变化、会话断开、缓冲区恢复、多个标签页、AI 面板、SFTP 文件管理器等一堆状态。前端需要像真实终端一样响应,后端又要稳定驱动 SSH 事件循环。 这个智能终端项目的整体结构是: Rust 后端负责 SSH、SFTP、SQLite、AI API 请求。 Rea...

Tauri
Rust
React
SSH
xterm
智能终端:把 AI 接入 SSH 的可控执行设计 封面

智能终端:把 AI 接入 SSH 的可控执行设计

2026-05-1810 min read

把 AI 接入 SSH 终端,最容易做成的版本其实很简单:用户问一句,模型回一段 Shell 命令,前端把命令写进终端。 但这个方案的问题也很明显。模型输出是文本,不是程序协议;文本里可能有解释、代码块、JSON、空白、甚至推理模型残留的 标签。更麻烦的是,SSH 终端连接的是真实机器,命令一旦执行,就不是普通聊天窗口里的“建议”了。 所以这个智能终端项目没有把“模型回复”和“终端执行”直接绑死,...

Tauri
Rust
SSH
AI
安全
终端 cd 后文件管理器自动跟随目录的实现 封面

终端 cd 后文件管理器自动跟随目录的实现

2026-05-187 min read

SSH 终端和 SFTP 文件管理器放在同一个应用里时,会有一个很自然的需求:我在终端里 ,右侧文件管理器也应该自动跳到这个目录。 如果做不到,用户就要在终端和文件管理器里重复输入路径。尤其排查日志、修改配置时,这个体验会很割裂。 这个智能终端项目的目录同步思路是: 从终端输出里解析当前目录。 把目录状态保存到前端 store。 把目录变化转成待同步目录。 收到后调用 SFTP 。 很多 Shel...

SSH
SFTP
xterm
React
Tauri
Vue3 + ECharts 大数据量阶梯式动态加载实践 封面

Vue3 + ECharts 大数据量阶梯式动态加载实践

2026-02-098 min read

在工业物联网(IIoT)场景下,历史数据查询往往涉及海量数据点。如果一次性加载跨度为一年甚至更久的所有秒级/分钟级数据,会面临以下问题: 后端压力大:数据库查询和传输耗时过长。 前端渲染卡顿:ECharts 需要处理百万级数据点,导致浏览器崩溃或交互极度卡顿。 网络传输慢:巨量 JSON 数据传输阻塞网络。 为了解决这个问题,我们在 页面实现了阶梯式动态加载(Step-by-step Dynami...

Vue3
ECharts
前端
性能优化
.NET Redis 工具类封装实践 封面

.NET Redis 工具类封装实践

2026-01-065 min read

在 .NET 项目中使用 Redis,通常基于 库。本文介绍如何封装一个功能完整、易于使用的 Redis 工具类。 统一管理键名前缀,避免多项目键名冲突: 配置类示例: 使用示例: 这个 Redis 工具类封装了常见的 Redis 操作,具有以下特点: 统一键前缀:避免多项目键名冲突 对象序列化:自动 JSON 序列化/反序列化 连接管理:自动重连、事件通知 分布式锁:简单易用的锁操作 发布订阅:...

dotnet
redis
cache
pubsub
.NET WebSocket 实时通知服务设计 封面

.NET WebSocket 实时通知服务设计

2026-01-065 min read

在工业监控系统中,前端需要实时展示设备状态、告警信息和各模块的在线状态。本文介绍如何使用 .NET WebSocket 实现一个统一的实时通知服务。 多客户端 WebSocket 连接管理 模块心跳监控与状态同步 日志推送与未读计数 用户会话踢出(单点登录配合) 使用 ConcurrentDictionary 管理 WebSocket 连接: 通过 Redis Pub/Sub 订阅各模块心跳: 使...

dotnet
websocket
realtime
notification
.NET 8 分布式工业控制系统架构设计 封面

.NET 8 分布式工业控制系统架构设计

2026-01-066 min read

本文介绍一个基于 .NET 8 的分布式工业控制系统架构。该系统用于钢厂智能燃烧控制,包含以下核心模块: SteelMill.Api:Web API 服务,提供 RESTful 接口 SteelMill.Dms:数据采集服务,从硬件设备采集数据 SteelMill.Ice:算法引擎服务,执行控制算法 SteelMill.SoftDog:看门狗服务,监控其他服务状态 SteelMill.Client...

dotnet
architecture
microservices
industrial-control
.NET 8 模块化初始化架构设计 封面

.NET 8 模块化初始化架构设计

2026-01-065 min read

在开发分布式系统时,我们常常会遇到这样的问题:不同模块(如 API 服务、数据采集服务、算法引擎)对基础设施的需求各不相同。API 模块需要完整的数据库、Redis、JWT 认证,而看门狗服务可能只需要 Redis。如何设计一个灵活的初始化架构来应对这种差异? 本文将分享一种基于 .NET 8 的模块化初始化模式。 首先定义一个配置类,用于控制各模块的初始化行为: 根据模块名称自动配置初始化选项:...

dotnet
architecture
initialization
design-pattern