Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

A messenger with no server: how ShutChat gets a message from one phone to another

说明与用途

ShutChat 是一个无服务器的 Android 消息应用,使用 24 位邀请码、LAN、蓝牙/Wi‑Fi Direct 或 MQTT 进行传输,支持重试机制和自动邀请码失效。

问题

Build a mobile messenger that operates without a central server, avoiding single points of failure and privacy risks.

结果

ShutChat demonstrates that a fully serverless messenger is feasible, providing direct and group chats, media transfer, and standard messaging features while preserving privacy and resilience to server outages.

工作流

  • Generate a 24‑character invite code (15 bytes, Base32 Crockford) that encodes version, expiry, CRC, and rendezvous secret.
  • Share the code via QR or text to invite a peer.
  • Peer scans QR or enters code to join the conversation.
  • App selects transport at runtime: LAN (UDP multicast + TCP), Nearby Connections (Bluetooth/Wi‑Fi Direct), or MQTT over TLS.
  • Messages are encrypted with keys derived from the invite secret; room ID travels in clear for relaying but topic is derived from secret to protect privacy.
  • If a peer is offline, the sender queues the message and retries with per‑message backoff until acknowledgment or expiry.
  • Foreground service keeps the mesh listening when the app is closed.
  • Peers can send photos, audio, files in chunks, and use read receipts, typing indicators, presence, etc.
  • Invite codes automatically expire and rotate.

证据

ShutChat is the result: an Android messenger where messages travel directly between devices. No server, no account, no sign‑up screen.

来源

A conversation starts with a 24‑character invite code, and that code is the entire access model.

来源

Three paths, chosen at runtime: LAN, Nearby Connections, MQTT over TLS.

来源

The relay is the only third party, and it sees neither the message nor who is talking.

来源

A message written for an offline peer went into the queue and was never retried.

来源

The fix was a retry queue with per‑message backoff.

来源

Direct and group chats from a single code; photos, audio and files transferred in chunks; replies, edits, deletes, reactions; read receipts and typing indicators; presence; search, pin, mute, archive, drafts; QR code sharing; automatic expiry and rotation of invite codes.

来源

  • 记录日期: 2026-10-27T20:26:14.018Z