MemRelay-Operation: checkpoint-save:nixmsg-ckpt-20260929-1552b MemRelay-Resource: de804d80-c991-45b0-ae0b-9b07f573f022
25 lines
1.7 KiB
Markdown
25 lines
1.7 KiB
Markdown
---
|
|
title: Checkpoint 2026-09-29 15:52:48 UTC [2365e8d4b5]
|
|
type: checkpoint
|
|
permalink: main/projects/25464650-ed5d-440e-b362-190f2852d451/checkpoint-2026-09-29-15-52-48-utc-2365e8d4b5
|
|
stable_id: de804d80-c991-45b0-ae0b-9b07f573f022
|
|
scope: project
|
|
memory_type: checkpoint
|
|
project_id: 25464650-ed5d-440e-b362-190f2852d451
|
|
usage_profile_id: 0c9feb46-d06e-43cd-9ef0-c5813c84a998
|
|
status: active
|
|
revision: 1
|
|
request_id: nixmsg-ckpt-20260929-1552b
|
|
created_at: '2026-09-29T15:52:48.620315+00:00'
|
|
updated_at: '2026-09-29T15:52:48.620315+00:00'
|
|
tags:
|
|
- nixmsg
|
|
- design
|
|
---
|
|
|
|
完成:用户补充并已写入需求(记忆 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,仓库仍为空。 |