Uniform Chat
  • Uniform.Matrix
  • API
Search Results for

    Show / Hide Table of Contents
    • LiveKit.Proto
      • ActiveSpeakerUpdate
      • AddTrackRequest
      • AudioCodec
      • AudioTrackFeature
      • BackupCodecPolicy
      • CandidateProtocol
      • ChatMessage
      • ClientConfigSetting
      • ClientConfiguration
      • ClientInfo
      • ClientInfo.Types
      • ClientInfo.Types.Capability
      • ClientInfo.Types.SDK
      • Codec
      • ConnectionQuality
      • ConnectionQualityInfo
      • ConnectionQualityUpdate
      • ConnectionSettings
      • DataBlob
      • DataBlobKey
      • DataBlobKey.KeyOneofCase
      • DataChannelInfo
      • DataChannelReceiveState
      • DataPacket
      • DataPacket.Types
      • DataPacket.Types.Kind
      • DataPacket.ValueOneofCase
      • DataStream
      • DataStream.Types
      • DataStream.Types.ByteHeader
      • DataStream.Types.Chunk
      • DataStream.Types.CompressionType
      • DataStream.Types.Header
      • DataStream.Types.Header.ContentHeaderOneofCase
      • DataStream.Types.OperationType
      • DataStream.Types.TextHeader
      • DataStream.Types.Trailer
      • DataTrackExtensionID
      • DataTrackExtensionParticipantSid
      • DataTrackFrameEncoding
      • DataTrackFrameEncoding.Types
      • DataTrackFrameEncoding.Types.WellKnownFrameEncoding
      • DataTrackFrameEncoding.ValueOneofCase
      • DataTrackInfo
      • DataTrackSchemaEncoding
      • DataTrackSchemaEncoding.Types
      • DataTrackSchemaEncoding.Types.WellKnownSchemaEncoding
      • DataTrackSchemaEncoding.ValueOneofCase
      • DataTrackSchemaId
      • DataTrackSubscriberHandles
      • DataTrackSubscriberHandles.Types
      • DataTrackSubscriberHandles.Types.PublishedDataTrack
      • DataTrackSubscriptionOptions
      • DependencyDescriptorForwarderState
      • DisabledCodecs
      • DisconnectReason
      • EncryptedPacket
      • EncryptedPacketPayload
      • EncryptedPacketPayload.ValueOneofCase
      • Encryption
      • Encryption.Types
      • Encryption.Types.Type
      • EventMetric
      • FilterParams
      • GetDataBlobRequest
      • GetDataBlobResponse
      • ICEServer
      • ImageCodec
      • JoinRequest
      • JoinResponse
      • LeaveRequest
      • LeaveRequest.Types
      • LeaveRequest.Types.Action
      • ListUpdate
      • LivekitMetricsReflection
      • LivekitModelsReflection
      • LivekitRtcReflection
      • MediaSectionsRequirement
      • MetricLabel
      • MetricSample
      • MetricsBatch
      • MetricsRecordingHeader
      • MuteTrackRequest
      • NegotiatedDataChannelID
      • OptionsExtensions
      • OptionsReflection
      • PacketTrailerFeature
      • Pagination
      • ParticipantInfo
      • ParticipantInfo.Types
      • ParticipantInfo.Types.Kind
      • ParticipantInfo.Types.KindDetail
      • ParticipantInfo.Types.State
      • ParticipantPermission
      • ParticipantTracks
      • ParticipantUpdate
      • Ping
      • PlayoutDelay
      • Pong
      • PublishDataTrackRequest
      • PublishDataTrackResponse
      • RTCPSenderReportState
      • RTPDrift
      • RTPForwarderState
      • RTPForwarderState.CodecMungerOneofCase
      • RTPMungerState
      • RTPStats
      • ReconnectReason
      • ReconnectResponse
      • RegionInfo
      • RegionSettings
      • RequestResponse
      • RequestResponse.RequestOneofCase
      • RequestResponse.Types
      • RequestResponse.Types.Reason
      • Room
      • RoomEndReason
      • RoomMovedResponse
      • RoomUpdate
      • RpcAck
      • RpcError
      • RpcRequest
      • RpcResponse
      • RpcResponse.ValueOneofCase
      • Sensitivity
      • ServerInfo
      • ServerInfo.Types
      • ServerInfo.Types.Edition
      • SessionDescription
      • SignalRequest
      • SignalRequest.MessageOneofCase
      • SignalResponse
      • SignalResponse.MessageOneofCase
      • SignalTarget
      • SimulateScenario
      • SimulateScenario.ScenarioOneofCase
      • SimulcastCodec
      • SimulcastCodecInfo
      • SipDTMF
      • SpeakerInfo
      • SpeakersChanged
      • StoreDataBlobRequest
      • StoreDataBlobResponse
      • StreamState
      • StreamStateInfo
      • StreamStateUpdate
      • SubscribedAudioCodec
      • SubscribedAudioCodecUpdate
      • SubscribedCodec
      • SubscribedQuality
      • SubscribedQualityUpdate
      • SubscriptionError
      • SubscriptionPermission
      • SubscriptionPermissionUpdate
      • SubscriptionResponse
      • SyncState
      • TimeSeriesMetric
      • TimedVersion
      • TokenPagination
      • TrackInfo
      • TrackPermission
      • TrackPublishedResponse
      • TrackSource
      • TrackSubscribed
      • TrackType
      • TrackUnpublishedResponse
      • Transcription
      • TranscriptionSegment
      • TrickleRequest
      • UnpublishDataTrackRequest
      • UnpublishDataTrackResponse
      • UpdateDataSubscription
      • UpdateDataSubscription.Types
      • UpdateDataSubscription.Types.Update
      • UpdateLocalAudioTrack
      • UpdateLocalVideoTrack
      • UpdateParticipantMetadata
      • UpdateSubscription
      • UpdateTrackSettings
      • UpdateVideoLayers
      • UserPacket
      • VP8MungerState
      • VideoCodec
      • VideoConfiguration
      • VideoLayer
      • VideoLayer.Types
      • VideoLayer.Types.Mode
      • VideoQuality
      • WebhookConfig
      • WrappedJoinRequest
      • WrappedJoinRequest.Types
      • WrappedJoinRequest.Types.Compression
    • Uniform.Chat.Avalonia
      • App
      • ClipboardFile
      • GuiPlatform
    • Uniform.Chat.Avalonia.Services
      • AccountCreator
      • AccountMemory
      • AvaloniaUiDispatcher
      • ClientConnection
      • IAccountCreator
      • INotifier
      • IPushService
      • IUiDispatcher
      • PasswordRequiredException
      • PushDistributor
      • PushRegistration
      • ShareInbox
      • SharedContent
      • SharedFile
      • SignIn
    • Uniform.Chat.Avalonia.ViewModels
      • ActionSheetViewModel
      • AdminAccountItem
      • AdminReportItem
      • AdminSection
      • AdminTokenItem
      • AdminViewModel
      • AppTheme
      • AudioTestViewModel
      • CallViewModel
      • ChatViewModel
      • ConnectingViewModel
      • DeviceItem
      • DirectoryViewModel
      • LicenseEntry
      • LicensesViewModel
      • LogFileItem
      • LoginViewModel
      • LogsViewModel
      • MainViewModel
      • MemberItem
      • MessageKind
      • MessageList
      • MessageViewModel
      • PublicRoomItem
      • RoomItemViewModel
      • SecurityViewModel
      • SettingsViewModel
      • SheetAction
      • SheetDetail
      • StatusLine
      • VerificationViewModel
      • VideoFeed
      • ViewModelBase
    • Uniform.Chat.Avalonia.Views
      • ActionSheetView
      • AdminView
      • ChatView
      • ConnectingView
      • DirectoryView
      • LicensesView
      • LinkClickedEventArgs
      • LoginView
      • MainView
      • MainWindow
      • RichText
      • SecurityView
      • SenderColorConverter
      • SettingsView
      • TextScale
      • VerificationView
      • VideoView
    • Uniform.Chat.Desktop
      • Program
    • Uniform.Chat.Desktop.Cameras
      • EncodingCamera
      • MediaFoundationCamera
      • V4l2Camera
    • Uniform.Chat.Desktop.Notifications
      • FreeDesktopNotifier
    • Uniform.Chat.Server
      • ServerHostOptions
      • UiMode
    • Uniform.Chat.Server.Management
      • HttpServerAdmin
      • IServerAdmin
      • LocalServerAdmin
      • ServerSnapshot
    • Uniform.Chat.Server.Ui
      • AdminWindow<T>
      • DashboardOptions
      • ReportsWindow
      • RoomsWindow
      • ServerWindow
      • UsersWindow
    • Uniform.Chat.Terminal.Configuration
      • AudioOptions
      • UiOptions
    • Uniform.Chat.Terminal.Ui
      • ClientDialogs
      • DroppedFiles
      • EntryKind
      • MainWindow
      • MessageFormatter
      • TimelineEntry
      • TimelinePane
      • TuiCredentialPrompt
    • Uniform.Chat.Terminal.Ui.Images
      • AsciiArt
      • DecodedImage
      • ImagePreviewStyle
    • Uniform.LiveKit
      • FrameCryptor
      • FrameKind
      • LiveKitMedia
      • LiveKitRoom
      • LiveKitRoomOptions
      • LiveKitRoomService
      • LiveKitSignalClient
      • MatrixRtcAuthorizationClient
    • Uniform.LiveKit.Authorization
      • AuthorizationException
      • DelayedLeaveKeeper
      • FederationOpenIdVerifier
      • HomeserverDelayedEvents
      • IDelayedEvents
      • IOpenIdVerifier
      • IRoomMembership
      • LiveKitAuthorizer
      • LiveKitAuthorizerOptions
    • Uniform.LiveKit.Hosting
      • LiveKitHostingExtensions
      • LiveKitOptions
    • Uniform.LiveKit.Protocol
      • AccessToken
      • AuthorizationError
      • CallMember
      • DelayedLeave
      • LegacySfuRequest
      • MatrixRtcNames
      • OpenIdToken
      • SfuResponse
      • TokenRequest
      • VideoGrant
    • Uniform.Matrix.Audio
      • AlsaAudioDevices
      • AudioDevice
      • AudioDevices
      • IAudioDevices
      • MicrophoneFrames
      • RingTone
      • SpeakerFrames
      • VoiceDecoder
      • VoiceEncoder
      • VoiceFormat
      • VoiceLoopback
      • WasapiAudioDevices
    • Uniform.Matrix.Calls
      • CallEventSender
      • CallService
      • CallState
      • IVideoCamera
      • LegacyCall
      • RtcCall
      • VideoReceiver
      • VoiceCall
      • VoiceMedia
    • Uniform.Matrix.Client
      • ClientServiceExtensions
      • EncryptedMedia
      • MatrixKeyTransport
      • MimeTypes
    • Uniform.Matrix.Client.Configuration
      • AccountPaths
      • MatrixOptions
      • StorageOptions
    • Uniform.Matrix.Client.Formatting
      • EventText
      • HtmlText
      • MarkdownComposer
    • Uniform.Matrix.Client.Migrations
      • AddEventLines
      • InitialCreate
    • Uniform.Matrix.Client.Services
      • AccountRegistration
      • ClientSession
      • ConnectionState
      • ConnectionStatus
      • CryptoService
      • EncryptionUnavailableException
      • ICredentialPrompt
      • MatrixWorker
      • MediaCache
      • NetworkMonitor
      • OutboxSender
      • SyncProcessor
    • Uniform.Matrix.Client.State
      • Room
      • RoomMemberInfo
      • RoomStore
      • SyncChanges
      • TimelineBatch
    • Uniform.Matrix.Client.Storage
      • ClientDbContext
      • ClientStore
      • CryptoAccountRow
      • CryptoDeviceListRow
      • CryptoInboundGroupSessionRow
      • CryptoOlmSessionRow
      • CryptoOutboundGroupSessionRow
      • CryptoValueRow
      • DesignTimeClientDbContextFactory
      • EfCryptoStore
      • OutboxMessage
      • OutboxState
      • RoomLines
      • StoredAccount
      • StoredEvent
      • StoredMedia
    • Uniform.Matrix.Gui.Terminal
      • Dialogs
      • LogWindow
      • SettingsWindow
      • TextWrapper
    • Uniform.Matrix.Hosting
      • AppDirectories
      • AppVersion
      • AppliedConfigurationProvider
      • AppliedConfigurationSource
      • FileLoggerProvider
      • HostingExtensions
      • ISettingsStore
      • LogEntry
      • LogFileInfo
      • LogFiles
      • OptionCatalog
      • OptionChange
      • OptionInfo
      • OptionSection
      • RestartRequiredAttribute
      • SecretAttribute
      • SettingsEditor
      • SettingsStore
    • Uniform.Matrix.Protocol.Client
      • HomeserverDiscovery
      • MatrixClient
      • MatrixSession
      • MediaDownload
      • RegistrationRequirements
      • UserInteractiveAuthException
    • Uniform.Matrix.Protocol.Core
      • AdminAccount
      • AdminAccountsResponse
      • AdminRegistrationToken
      • AdminRegistrationTokensResponse
      • AdminReport
      • AdminReportsResponse
      • AdminRoomInfo
      • AdminRoomShutdown
      • AdminRoomsResponse
      • AuthFlow
      • AuthTypes
      • Base64
      • CallAnswerContent
      • CallCandidate
      • CallCandidatesContent
      • CallContent
      • CallEncryptionKeysContent
      • CallHangupContent
      • CallInviteContent
      • CallKeyMember
      • CallMediaKey
      • CallMemberContent
      • CallNegotiateContent
      • CallRejectContent
      • CallSelectAnswerContent
      • CallSessionDescription
      • CanonicalAliasContent
      • CanonicalJson
      • ClientEvent
      • ContextResponse
      • CreateContent
      • CreateMediaResponse
      • CreateRoomRequest
      • CrossSigningKey
      • CrossSigningUsages
      • DelayedEventResponse
      • Device
      • DeviceKeys
      • DeviceLists
      • DevicesResponse
      • DirectContent
      • Direction
      • EncryptedContent
      • EncryptedFile
      • EncryptionAlgorithms
      • EncryptionContent
      • ErrorCodes
      • ErrorResponse
      • EventFilter
      • EventIdResponse
      • EventList<T>
      • EventTypes
      • ExceptionText
      • Filter
      • FilterIdResponse
      • FullyReadContent
      • IgnoredUserListContent
      • InReplyTo
      • InitialStateEvent
      • InvitedRoom
      • JoinedMembersResponse
      • JoinedRoom
      • JoinedRoomsResponse
      • JsonWebKey
      • KeyBackupAlgorithms
      • KeyBackupData
      • KeyBackupVersion
      • KeysBackup
      • KeysClaimResponse
      • KeysQueryResponse
      • KeysUploadResponse
      • KnockedRoom
      • LeftRoom
      • LoginFlow
      • LoginFlowsResponse
      • LoginResponse
      • MatrixEvent
      • MatrixException
      • MatrixJson
      • MatrixLink
      • MediaInfo
      • MemberContent
      • MembersResponse
      • Memberships
      • Mentions
      • MessageContent
      • MessageFormats
      • MessageTypes
      • MessagesResponse
      • MxcUri
      • NameContent
      • OpenIdTokenResponse
      • PasswordLoginRequest
      • PowerLevelsContent
      • PresenceContent
      • PresenceEvent
      • PresenceStates
      • ProfileResponse
      • PublicRoom
      • PublicRoomsResponse
      • ReactionContent
      • ReceiptContent
      • ReceiptInfo
      • ReceiptTypes
      • RedactionContent
      • RegisterRequest
      • RegisterResponse
      • Relation
      • RelationTypes
      • RoomAliasResponse
      • RoomAliasesResponse
      • RoomAvatarContent
      • RoomEventFilter
      • RoomFilter
      • RoomIdResponse
      • RoomKeyBackup
      • RoomKeyContent
      • RoomMember
      • RoomPresets
      • RoomSummary
      • RoomTags
      • RtcDeclineContent
      • RtcFocusActive
      • RtcNotificationContent
      • RtcTransport
      • RtcTransportsResponse
      • StringOrNumberConverter
      • StrippedStateEvent
      • SyncResponse
      • SyncRooms
      • TagContent
      • TagInfo
      • TermsPolicy
      • Timeline
      • ToDeviceEvent
      • TopicContent
      • TurnServerResponse
      • TypingContent
      • UnreadNotificationCounts
      • UnsignedData
      • UploadResponse
      • UserDirectoryEntry
      • UserDirectoryResponse
      • UserId
      • UserIdentifier
      • UserInteractiveAuthResponse
      • VerificationRequestContent
      • VersionsResponse
      • WellKnownClient
      • WellKnownServer
      • WhoAmIResponse
      • WhoisConnection
      • WhoisDevice
      • WhoisResponse
      • WhoisSession
    • Uniform.Matrix.Protocol.Crypto
      • AccountRecord
      • AesCtr
      • AttachmentCrypto
      • AttachmentKeys
      • DecryptedToDeviceEvent
      • DecryptionStatus
      • DeviceInfo
      • DeviceListRecord
      • DeviceTrust
      • Ed25519
      • EncryptedAttachments
      • EncryptedSecret
      • EstablishedSas
      • ICryptoStore
      • IKeyTransport
      • IdentityKeys
      • InMemoryCryptoStore
      • InboundGroupSessionRecord
      • MegolmInboundSession
      • MegolmOutboundSession
      • MegolmPlaintext
      • OlmAccount
      • OlmException
      • OlmMachine
      • OlmMessage
      • OlmSession
      • OlmSessionRecord
      • OutboundGroupSessionRecord
      • PassphraseInfo
      • PkEncryption
      • PkMessage
      • RecoveryResult
      • RoomEventDecryption
      • Sas
      • SasEmoji
      • SecretNames
      • SecretStorage
      • SecretStorageCrypto
      • SecretStorageKeyDescription
      • SecurityStatus
      • UserIdentity
      • Verification
      • VerificationState
    • Uniform.Matrix.Protocol.Server
      • AuthEventTypes
      • AuthEvents
      • AuthRules
      • DnsSrv
      • EventFormat
      • FederationAuth
      • PowerLevels
      • PushContext
      • PushDecision
      • PushRules
      • RedactionRules
      • RoomVersion
      • ServerAcl
      • ServerNames
      • SrvRecord
      • StateResolution
      • XMatrixAuthorization
    • Uniform.Matrix.Server
      • ServerServiceExtensions
      • ServerStatus
    • Uniform.Matrix.Server.Accounts
      • AccountDataService
      • AccountDeactivation
      • AccountService
      • AdminDevice
      • AdminRoom
      • AdminService
      • AdminUser
      • AdminUserChange
      • AuthenticationRequiredException
      • LocalUserIds
      • OpenIdTokens
      • Optional<T>
      • PresenceService
      • ProfileService
      • PushNotifier
      • PushRuleService
      • PusherService
      • RegistrationToken
      • RegistrationTokens
      • Requester
      • RoomShutdown
      • ServerNotices
      • UserInteractiveAuth
    • Uniform.Matrix.Server.Configuration
      • CallOptions
      • FederationOptions
      • MediaOptions
      • PushOptions
      • RateLimitOptions
      • RegistrationMode
      • ServerOptions
      • ServerStorageOptions
      • TlsOptions
      • UrlPreviewOptions
    • Uniform.Matrix.Server.Encryption
      • DeviceKeyService
      • KeyBackupService
      • ToDeviceService
    • Uniform.Matrix.Server.Endpoints
      • AccountDataEndpoints
      • AccountEndpoints
      • ActivityEndpoints
      • AdminEndpoints
      • CallEndpoints
      • DeviceEndpoints
      • DirectoryEndpoints
      • DiscoveryEndpoints
      • FederationEndpoints
      • KeyBackupEndpoints
      • KeyEndpoints
      • ManagementEndpoints
      • MediaEndpoints
      • ProfileEndpoints
      • PushRuleEndpoints
      • PusherEndpoints
      • RoomEndpoints
      • SyncEndpoints
    • Uniform.Matrix.Server.Federation
      • FederationClient
      • FederationEndpoint
      • FederationQueue
      • FederationSender
      • RemoteActivity
      • RemoteDevices
      • RemoteEvents
      • RemoteInvites
      • RemoteJoins
      • RemoteServerKeys
      • RoomAcls
      • RoomHistory
      • ServerAddress
      • ServerAuthentication
      • ServerResolver
      • SrvLookup
    • Uniform.Matrix.Server.Http
      • AccessTokens
      • AdminSocket
      • LegacyPaths
      • MatrixErrorException
      • MatrixHttp
      • PublicAddresses
      • RateLimits
      • TlsCertificate
      • TlsCertificateException
    • Uniform.Matrix.Server.Keys
      • ServerKeys
    • Uniform.Matrix.Server.Media
      • MediaService
      • MediaService.StoredFile
      • Thumbnailer
      • UrlPreviewService
    • Uniform.Matrix.Server.Rooms
      • DelayedEvents
      • DirectoryService
      • EventDraft
      • EventSender
      • ReceiptService
      • Report
      • ReportService
      • RoomService
      • StateCache
      • TypingService
    • Uniform.Matrix.Server.Storage
      • AccessTokenRow
      • AccountDataRow
      • CounterRow
      • CrossSigningKeyRow
      • CurrentStateRow
      • DataDirectoryInUseException
      • DataDirectoryLock
      • DatabaseMigrator
      • DelayedEventRow
      • DesignTimeServerDbContextFactory
      • DeviceKeysRow
      • DeviceListChangeRow
      • DeviceRow
      • EventEdgeRow
      • EventRelationRow
      • EventRow
      • FallbackKeyRow
      • FederationOutboxRow
      • FederationProgressRow
      • FilterRow
      • ForgottenRoomRow
      • ForwardExtremityRow
      • KeyBackupVersionRow
      • KeySignatureRow
      • MediaRow
      • OneTimeKeyRow
      • ProfileRow
      • PusherRow
      • ReceiptRow
      • RegistrationTokenRow
      • RemoteInviteRow
      • RemoteMediaRow
      • ReportRow
      • RoomAliasRow
      • RoomKeyRow
      • RoomRow
      • ServerDbContext
      • ServerKeyResponseRow
      • StateGroupEntryRow
      • StateGroupRow
      • ThumbnailRow
      • ToDeviceRow
      • TransactionRow
      • UserRow
    • Uniform.Matrix.Server.Storage.Migrations
      • AddAdminControls
      • AddDelayedEvents
      • AddEventStatusRelationsAndReports
      • AddFederationOutbox
      • AddFederationProgress
      • AddPushers
      • AddRemoteInvites
      • AddRemoteMedia
      • AddServerKeyResponses
      • InitialCreate
      • ScopeTransactionsToRooms
    • Uniform.Matrix.Server.Sync
      • ServerStream
      • SlidingSyncService
      • SyncFilter
      • SyncService
    • Uniform.Matrix.Video
      • IVideoDecoder
      • VideoFrame
    • Uniform.Matrix.Video.Vp8
      • Vp8Decoder
      • Vp8Encoder
    • Uniform.Matrix.WebRtc
      • AudioPeerConnection
      • IMediaConnection
      • PeerConnectionOptions
      • PeerConnectionState
    • Uniform.Matrix.WebRtc.Dtls
      • DtlsCertificate
      • DtlsSrtp
    • Uniform.Matrix.WebRtc.Ice
      • IceAgent
      • IceCandidate
      • IceCandidateType
      • IceOptions
      • IceServer
      • IceState
    • Uniform.Matrix.WebRtc.Rtp
      • BandwidthEstimator
      • JitterBuffer
      • ReceiverStatistics
      • ReportBlock
      • Rtcp
      • RtpPacket
      • Vp8Depacketizer
      • Vp8EncodedFrame
      • Vp8Packetizer
    • Uniform.Matrix.WebRtc.Sdp
      • AudioSdp
      • LocalAudio
      • MediaDescription
      • RemoteAudio
      • RemoteTransport
      • RemoteVideo
      • SessionDescription
    • Uniform.Matrix.WebRtc.Srtp
      • SrtpSession
    • Uniform.Stun
      • DatagramSender
      • StunClient
      • StunDiscovery
      • TurnClient
    • Uniform.Stun.Hosting
      • PemCertificate
      • TurnHostingExtensions
      • TurnOptions
      • TurnServerHost
    • Uniform.Stun.Protocol
      • ChannelData
      • StunAddress
      • StunAttribute
      • StunAttributeTypes
      • StunClass
      • StunErrorCodes
      • StunMessage
      • StunMethod
      • TurnCredentials
    • Uniform.Turn
      • CombinedAuthenticator
      • ITurnAuthenticator
      • IpRange
      • SharedSecretAuthenticator
      • StaticUserAuthenticator
      • TurnServer
      • TurnServerOptions
      • TurnServerStatus
      • TurnTransport

    Class PresenceService

    Presence, kept in memory: what users set, and online while they sync.

    Inheritance
    object
    PresenceService
    Implements
    IDisposable
    Inherited Members
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.ReferenceEquals(object, object)
    object.ToString()
    Namespace: Uniform.Matrix.Server.Accounts
    Assembly: Uniform.Matrix.Server.dll
    Syntax
    public sealed class PresenceService : IDisposable
    Remarks

    Each change takes a ServerStream position, so waiting syncs wake and incremental syncs send m.presence to everyone who shares a room. Syncing marks a user online unless set_presence says otherwise; a user who has not synced for OfflineAfter goes offline. Users of other servers get their presence from their server, see SetRemoteAsync(string, string, string?, long, CancellationToken). Presence is lost on restart, and users start offline.

    Constructors

    | Edit this page View Source

    PresenceService(IDbContextFactory<ServerDbContext>, ServerStream, TimeProvider, ILogger<PresenceService>)

    Create the service and its timer, which takes idle users offline.

    Declaration
    public PresenceService(IDbContextFactory<ServerDbContext> contexts, ServerStream stream, TimeProvider time, ILogger<PresenceService> logger)
    Parameters
    Type Name Description
    IDbContextFactory<ServerDbContext> contexts
    ServerStream stream
    TimeProvider time
    ILogger<PresenceService> logger

    Fields

    | Edit this page View Source

    ActiveFor

    How long after their last activity a user still counts as currently active.

    Declaration
    public static readonly TimeSpan ActiveFor
    Field Value
    Type Description
    TimeSpan
    | Edit this page View Source

    OfflineAfter

    How long after their last sync or presence update a user counts as offline.

    Declaration
    public static readonly TimeSpan OfflineAfter
    Field Value
    Type Description
    TimeSpan
    | Edit this page View Source

    RemoteOfflineAfter

    How long a user of another server keeps their presence here without an update from their server, which normally tells when they go offline.

    Declaration
    public static readonly TimeSpan RemoteOfflineAfter
    Field Value
    Type Description
    TimeSpan

    Methods

    | Edit this page View Source

    Dispose()

    Stop the timer.

    Declaration
    public void Dispose()
    | Edit this page View Source

    Get(string)

    Return a user's presence for the presence API; offline when unknown.

    Declaration
    public JsonObject Get(string userId)
    Parameters
    Type Name Description
    string userId
    Returns
    Type Description
    JsonObject
    | Edit this page View Source

    GetEventsAsync(ServerDbContext, string, long?, long, CancellationToken)

    Return m.presence events of the user and of everyone sharing a joined room with them that changed after since; for initial syncs (null), of everyone known.

    Declaration
    public Task<IReadOnlyList<JsonObject>> GetEventsAsync(ServerDbContext dbContext, string userId, long? since, long until, CancellationToken cancellationToken)
    Parameters
    Type Name Description
    ServerDbContext dbContext
    string userId
    long? since
    long until
    CancellationToken cancellationToken
    Returns
    Type Description
    Task<IReadOnlyList<JsonObject>>
    | Edit this page View Source

    GetLocalChanges(long, long)

    Return the presence of users of this server that changed after since up to until, for other servers.

    Declaration
    public IReadOnlyList<(string UserId, JsonObject Content)> GetLocalChanges(long since, long until)
    Parameters
    Type Name Description
    long since
    long until
    Returns
    Type Description
    IReadOnlyList<(string UserId, JsonObject Content)>
    | Edit this page View Source

    SetAsync(string, string, string?, CancellationToken)

    Set a user's presence and status message with the presence API.

    Declaration
    public Task SetAsync(string userId, string presence, string? status, CancellationToken cancellationToken)
    Parameters
    Type Name Description
    string userId
    string presence
    string status
    CancellationToken cancellationToken
    Returns
    Type Description
    Task
    | Edit this page View Source

    SetRemoteAsync(string, string, string?, long, CancellationToken)

    Set the presence of another server's user from an m.presence EDU of their server.

    Declaration
    public Task SetRemoteAsync(string userId, string presence, string? status, long lastActiveAgo, CancellationToken cancellationToken)
    Parameters
    Type Name Description
    string userId

    User of the sending server.

    string presence

    online, unavailable or offline; other values are ignored.

    string status

    Status message, or null.

    long lastActiveAgo

    Milliseconds since the user was last active.

    CancellationToken cancellationToken

    Cancellation token.

    Returns
    Type Description
    Task
    | Edit this page View Source

    TouchAsync(string, string?, CancellationToken)

    Record that a user syncs: online, or idle when setPresence is unavailable; offline leaves the presence as it is.

    Declaration
    public Task TouchAsync(string userId, string? setPresence, CancellationToken cancellationToken)
    Parameters
    Type Name Description
    string userId

    The syncing user.

    string setPresence

    The sync's set_presence, or null for the default, online.

    CancellationToken cancellationToken

    Cancellation token.

    Returns
    Type Description
    Task

    Implements

    IDisposable
    • Edit this page
    • View Source
    In this article
    Back to top Uniform Chat