Uniform Chat
  • Uniform.Matrix
  • API
Search Results for

    Show / Hide Table of Contents
    • Uniform.Matrix.Protocol.Core
      • Introduction
    • Uniform.Matrix.Protocol.Client
      • Introduction
      • Log in
      • Receive events
      • Rooms and messages
      • Directories and account data
      • Files and devices
      • Errors
    • Uniform.Matrix.Protocol.Crypto
      • Introduction
    • Uniform.Matrix.Hosting
      • Introduction
    • Uniform.Matrix.Gui.Terminal
      • Introduction
    • Uniform.Matrix.Audio
      • Introduction
    • Uniform.Matrix.Video
      • Introduction
    • Uniform.Stun.Protocol
      • Introduction
    • Uniform.Stun
      • Introduction
    • Uniform.LiveKit.Protocol
      • Introduction
    • Uniform.LiveKit
      • Introduction
    • Uniform.Matrix.WebRtc
      • Introduction
    • Uniform.Matrix.Client
      • Introduction
      • Room state
      • Rich text
      • Local storage
      • Outbox
      • Track rooms
    • Uniform.Matrix.Calls
      • Introduction
    • Uniform.Chat.Terminal
      • Introduction
    • Uniform.Chat.Avalonia
      • Introduction
      • View models
      • Views
    • Uniform.Chat.Desktop
      • Introduction
    • Uniform.Chat.Android
      • Introduction
    • Uniform.Matrix.Protocol.Server
      • Introduction
    • Uniform.Matrix.Server
      • Introduction
      • Requests
      • Storage
      • Events and state
      • Sync and the stream
      • Services
      • Push rules and pushers
      • Presence
      • URL previews
      • Rate limits
      • Federation
      • Testing
    • Uniform.Chat.Server
      • Introduction
    • Uniform.Turn
      • Introduction
    • Uniform.Stun.Hosting
      • Introduction
    • Uniform.Stun.Server
      • Introduction
    • Uniform.LiveKit.Authorization
      • Introduction
    • Uniform.LiveKit.Hosting
      • Introduction
    • Uniform.LiveKit.Server
      • Introduction
    • Building
    • Testing
    • Documentation

    Presence

    PresenceService keeps presence in memory, like typing: each change takes a ServerStream position, and sync sends m.presence for the user and everyone sharing a joined room with them. A sync marks the user online, or idle with set_presence=unavailable; set_presence=offline changes nothing. A state chosen with the presence API, such as unavailable or offline to appear away, is not changed by syncing. A timer takes users offline once they have not synced for PresenceService.OfflineAfter (2 minutes), which wakes the syncs of the people who see them. Presence is lost on restart.

    The server never sees private keys. It checks that uploaded device keys, cross-signing keys and signatures are signed as the spec requires, hands out each one-time key once, and stores encrypted backups as they come.

    • Edit this page
    In this article
    Back to top Uniform Chat