--- title: NixMsg 设备通讯需求 type: prd permalink: main/projects/25464650-ed5d-440e-b362-190f2852d451/nix-msg-设备通讯需求 stable_id: 9cea62eb-5435-4fb1-af51-9699bb182b1a scope: project memory_type: prd project_id: 25464650-ed5d-440e-b362-190f2852d451 usage_profile_id: 0c9feb46-d06e-43cd-9ef0-c5813c84a998 status: active revision: 10 request_id: nixmsg-20260930-0507-prd-rev10 created_at: '2026-09-29T15:43:54.496883+00:00' updated_at: '2026-09-29T20:54:48.029417+00:00' tags: - nixmsg - requirements --- NixMsg 是自建消息中转。正式文档:docs/PRD.md 与 docs/DEVELOPMENT.md(2026-09-30,版本 0.3)。 用途:以程序和设备自动收发为主,人在 App 或网页里收发也要。服务器不保存可翻阅的历史。 身份:对等的端,编号只允许小写,同一编号只能一处登录。端由管理员开通,或在管理员开启注册后带正确注册安全码自助注册(F23);换码不影响已注册的端。开放注册后目录仍对所有端可见。可以组群,群消息只存一份。 密码:登录密码和对话密码都要,对话密码输对一次就记住、对方改密后失效、先单聊过可免密回复、拉进群必须当次带对话密码。登录失败按编号加 IP 锁定。 消息:单条正文最大 256 KiB,不分块;可选离线保留、至少送达一次、可定时、可延迟、可撤回;送达或结束后立刻删正文;每端有未完成消息和排队投递配额(默认各 1 万条,0 为不限)。 实现:单机一个 Go 进程(标准库 net/http)、内置 mochi-mqtt、SQLite 手写 SQL、不用 Redis。端只用一个固定端口(默认 7443),后台可用 admin_listen 单独监听。后台 Vue 3 + TypeScript + Naive UI 打包嵌入程序;有管理 API 令牌和操作日志。部署:二进制 + Docker 镜像;/metrics;证书由 1Panel 续签并推送到目录,程序自动重载。SDK:Go、Java/Android、JS/TS、Python。 状态:PRD 第 9 节 D1–D26 已确认,D27(API 令牌细节)待确认。