Files
MemRelay/projects/25464650-ed5d-440e-b362-190f2852d451/NixMsg 设备通讯需求.md
T
memrelay e629f2bae6 update: NixMsg 设备通讯需求
MemRelay-Operation: memory-save:nixmsg-20260930-0500-prd-rev9
MemRelay-Resource: 9cea62eb-5435-4fb1-af51-9699bb182b1a
2026-09-30 04:28:48 +08:00

32 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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: 9
request_id: nixmsg-20260930-0500-prd-rev9
created_at: '2026-09-29T15:43:54.496883+00:00'
updated_at: '2026-09-29T20:28:45.569242+00:00'
tags:
- nixmsg
- requirements
---
NixMsg 是自建消息中转。正式文档:docs/PRD.md 与 docs/DEVELOPMENT.md(2026-09-30,版本 0.2)。根目录的 t.md 草稿已不存在。
用途:以程序和设备自动收发为主,人在 App 或网页里收发也要。服务器不保存可翻阅的历史,历史由客户端自己决定。
身份:对等的端,有编号(0.2 起只允许小写字母、数字、_ . -),同一编号只能一处登录。端由管理员开通,或在管理员开启注册后带正确注册安全码自助注册(F23,SDK 提供注册和改登录密码、对话密码);换码不影响已注册的端。可以组群,群消息只存一份,到点按当时成员投递,入群前的消息不补。
密码:登录密码和对话密码都要。对话密码输对一次就记住,对方改密后失效。对方先单聊过,可以免密回复。拉进群必须当次带对话密码。谁都能看到别人是否在线。登录失败按「编号 + 来源 IP」锁定。
消息:单条正文最大 256 KiB,不分块。可选离线保留并带过期时间,弱网至少送达一次。可定时、可延迟、可撤回。送达、过期或撤回后立刻删正文,只留不含正文的记录,保留天数可配置。
实现:单机一个 Go 进程,内置 mochi-mqtt,SQLite,不用 Redis。端只用一个固定端口(默认 7443,WebSocket /mqtt、裸 MQTT TCP、注册接口同端口自动识别);后台默认同端口,可用 admin_listen 单独监听。SDK:Go、Java/Android、JavaScript/TypeScript、Python。嵌入式本期不出 C SDK,按协议直接接 MQTT。
待用户复核的默认(PRD 第 9 节):D1–D13 来自 0.1;D14–D23 是 0.2 新增:注册默认关闭且安全码可在后台查看;注册可自选编号、无需审核;不做忘记密码找回和端自注销;编号小写;编号加 IP 锁定;不保留消息确认超时即丢弃;撤回不发回执;停用或删除端时作废其发出的消息;撤回不收回回复授权;服务器重启后所有未完成投递至少再等一个宽限。