mishiqian/lan-im
mishiqian★ 0TypeScript最后同步: 2026-08-16
—
README 摘要
局域网即时通信(lan-im) 让局域网内所有 安装本插件 的 DeepSeek Harness 实例以 账号身份 互相发现、可靠地互发消息聊天。 特性 - 账号体系 :以账号(username + 显示名)而非机器作为身份;首次打开设置账号,之后免登录。 - 发现 : mDNS + UDP 广播双通道 ,按设备去重;组播被隔离的网络也能发现。 - 可靠消息 :私聊 送达确认(ack)+ 离线补发 (持久化 outbox,对端上线自动补发),群聊尽力投递。 - 实时推送 :客户端↔宿主走浏览器原生 WebSocket (同源升级,无轮询),窗口关闭也保持连接。 - 通知未读 :悬浮按钮 未读角标 + 桌面通知(窗口关闭/页面不可见时)。 - 频道 :UUID 稳定标识,支持重命名/描述/解散;公共频道 + 私有频道(成员邀请/移除、消息按成员路由)。 - 局域网网盘 :每个频道一个共享文件空间,索引广播 + 按需拉取 + 本地缓存;上传者可删除。 - 历史 :本地落盘到 /.dsh/plugins-data/lan-im/ (内存窗口上限 500 条,历史文件全量保留)。 - UI :侧边栏入口 + 悬浮可拖拽窗(✕/Esc/点击外关闭)+ 🛠 诊断日志。 前置条件 - DeepSeek Harness 标准组合(已含 webServer ,支持 registerUpgrade )。 - 同一局域网、各节点互通;放行 UDP 5353(mDNS 组播) 与 UDP 42123(广播兜底) ,以及节点间 WebSocket 临时端口。 安装 dsh web 重启会中断当前 GUI 会话,请自行择机执行。 使用 1. 首次打开悬浮窗 → 输入 账号 + 显示名 (密码可选)创建账号。 2. 侧边栏「局域网聊天」标签 / 右下角 💬 按钮 / Ctrl+Shift+L 唤起悬浮窗。 3. 公共频道群发,或点左侧某账号切换 一对一私聊 (已送达有状态提示)。 4. 频道内可切换「消息 / 文件」tab;文件 tab 支持上传、下载、预览与删除共享文件。 5. 窗口关闭时来消息 → 悬浮按钮出现未读角标 + 桌面通知(首次点击按钮时授权)。 网络端口 端口 协议 用途 5353/UDP mDNS 组播(224.0.0.251) 节点发现(主通道) 42123/UDP 广播 节点发现(兜底通道) 临时 TCP WebSocket 节点间消息(mDNS SRV 广播实际端口) 构建与验证 排障 打开悬浮窗右上角 🛠 查看诊断日志,或 node scripts/diag.mjs 扫描节点。 - 扫不到节点 → 放行 UDP 5353 + 42123(入站+出站),确认同子网、组播/广播未被隔离。 - 私聊一直「已发送」不「已送达」→ 对方节点离线或 WebSocket…
在 GitHub 查看完整 README →