--- title: NixMsg 产品边界确认 type: decision permalink: main/projects/25464650-ed5d-440e-b362-190f2852d451/nix-msg-产品边界确认 stable_id: de0503ed-3d77-400d-a0bb-bbe44371f906 scope: project memory_type: decision project_id: 25464650-ed5d-440e-b362-190f2852d451 usage_profile_id: 0c9feb46-d06e-43cd-9ef0-c5813c84a998 status: active revision: 5 request_id: nixmsg-boundary-20260930-r5 created_at: '2026-09-29T18:07:17.185616+00:00' updated_at: '2026-09-29T18:23:50.383963+00:00' tags: - nixmsg - prd - boundary --- 用户在整理 PRD 前确认的产品边界: 1. 使用者:偏向程序或设备自动收发,但人在 App、网页里看消息也需要,后续可能用于聊天类消息通讯。 2. 服务器不保留历史供翻看。是否保留历史由客户端自行决定,我们只提供 SDK。 3. 密码分两种,都要:登录密码(端连服务器必须用,防止冒充),和对话密码(别人要给这个端发消息,得先知道这个密码)。 4. 对话密码输对一次就记住,之后直接发;对方改对话密码后,所有人要重新输。 5. 所有端在同一个圈子:谁都能看到别的端在不在线;能不能发消息,只看对方有没有设对话密码。 6. 把设了对话密码的端拉进群,要先输对它的对话密码;进群后群消息直接能收到。 7. 需要网页管理后台:开通端、改密码、看在线、管群、查消息送没送到。 8. 第一批 SDK:Go、Java/Android、JavaScript/TypeScript(浏览器和 Node.js)、Python。 9. 服务端:单个 Go 程序,内置 MQTT。在线状态准确,一个程序一个端口,部署只放一个文件。所有消息先经服务器处理,设备之间不直接转发。 10. 消息大小:正常是小数据,但不限制单条消息总大小。大消息由 SDK 自动切块传输,断网后从断点接着传,拼好后再交给对方;单块大小受 MQTT 包大小限制。 11. 消息送到(或过期、撤回)后,服务器马上删掉消息内容,只留“谁发给谁、什么时候、送没送到”的记录供后台查。记录保留多久可以自己设定,也可以不留;不留则送完后连记录一起删除,后台只能看到未送完的消息。 12. 设了对话密码的 B 主动给 A 发消息后,A 回复 B 不用再输密码;B 改对话密码后,A 也要重新输。 13. 同一个端(同一个编号)只能在单台设备上登录。用户曾选过多台同时登录,已明确推翻。要多台就开多个端;发出的消息不同步到其他设备。