MemRelay-Operation: checkpoint-save:nixmsg-ckpt-20260929-1552b MemRelay-Resource: de804d80-c991-45b0-ae0b-9b07f573f022
1.7 KiB
1.7 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 | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Checkpoint 2026-09-29 15:52:48 UTC [2365e8d4b5] | checkpoint | main/projects/25464650-ed5d-440e-b362-190f2852d451/checkpoint-2026-09-29-15-52-48-utc-2365e8d4b5 | de804d80-c991-45b0-ae0b-9b07f573f022 | project | checkpoint | 25464650-ed5d-440e-b362-190f2852d451 | 0c9feb46-d06e-43cd-9ef0-c5813c84a998 | active | 1 | nixmsg-ckpt-20260929-1552b | 2026-09-29T15:52:48.620315+00:00 | 2026-09-29T15:52:48.620315+00:00 |
|
完成:用户补充并已写入需求(记忆 9cea62eb-5435-4fb1-af51-9699bb182b1a revision 2)。单机不做集群;设备 1000 以内,可能有嵌入式;发送时可选择对方不在线是否保留;离线消息必须有过期时间,超时销毁;弱网也要尽量送达。 原因:数据面仍用 MQTT,离线邮箱用自己的 SQLite,不能只靠 broker 会话队列。 建议(尚未经用户明确说开工,不得当作已裁定决定):单机 Docker Compose。Mosquitto 负责在线长连接与 QoS 1 重传。FastAPI 加 SQLite 负责设备密码、在线查询,以及可选离线邮箱(按消息 TTL,上线后按序补发,超时删除)。对外一个 WebSocket 端口;极小嵌入式若跑不动 WebSocket,再单独开 1883。传达语义是至少一次,消息带 ID 供接收方去重。在线抖动靠 MQTT 重传;已经离线且选择保留时才进 SQLite。不要用 EMQX,不要做集群。 验证:未写代码。 下一步:等用户说开工后再搭 Docker Compose 骨架。 给下个会话:项目 ID 25464650-ed5d-440e-b362-190f2852d451,目录 e:/code/NixMsg,仓库仍为空。