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

2.5 KiB
Raw Blame History

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 设备通讯需求 prd main/projects/25464650-ed5d-440e-b362-190f2852d451/nix-msg-设备通讯需求 9cea62eb-5435-4fb1-af51-9699bb182b1a project prd 25464650-ed5d-440e-b362-190f2852d451 0c9feb46-d06e-43cd-9ef0-c5813c84a998 active 7 nixmsg-prd-20260930-0110 2026-09-29T15:43:54.496883+00:00 2026-09-29T17:15:57.912231+00:00
nixmsg
requirements

NixMsg 是自部署的消息中转服务。参与者是对等的端:每个端有自己的标识,同时发送和接收。端可以组成群,群成员看到同一份群消息。交付物是服务端、网页管理后台和各语言 SDK。

用途(用户确认 2026-09-30):

  • 以程序自动处理为主(执行指令、上报数据),后续也可能用于人与人的消息通讯
  • 服务器不保留可翻阅的历史消息;是否保留历史由客户端自己决定,我们只提供 SDK

密码与可见范围(用户确认):

  • 登录密码:端连服务器用,没有或输错就连不上
  • 通讯密码:可选,别的端给它发消息时必须带上,知道密码才能跟它通讯
  • 所有端在同一个圈子:谁都能看到别的端是否在线;能否发消息只看对方有没有通讯密码
  • 把设了通讯密码的端拉进群,要先输对它的通讯密码;进群后群消息直接能收到

管理与 SDK(用户确认):

  • 需要网页管理后台:开通端、改密码、看在线、管群、查消息送没送到
  • 第一批 SDK:Go、Java(含 Android)、JavaScript/TypeScript(浏览器和 Node.js)、Python
  • 嵌入式第一批不出 SDK,靠完整公开的底层协议接入

部署与规模:单机,暂不做集群;端数量 1000 以内,可能有嵌入式。

消息语义:

  • 发送时可选择对方不在线是否保留,保留消息有过期时间,超时销毁
  • 弱网尽量送达,至少一次,消息带 ID 供接收方去重
  • 可撤回已提交、对方尚未接受、且未过期的消息
  • 可指定何时发送,也可以固定每条消息的发送延迟;到点后再按在线状态和是否保留投递
  • 群消息只存一份,成员看到同一条;每个成员各自有投递状态
  • 建群者是群主并管理成员;到点时按当时成员投递;入群前的消息不补

文档:用户要求在 docs/ 下写 PRD 和开发文档,不写代码;交给 Grok 开发组开发,完成后再交回审核。边界问题每轮问 1-2 个。