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