Umbraco.Community.WhoIsHere
0.9.2
dotnet add package Umbraco.Community.WhoIsHere --version 0.9.2
NuGet\Install-Package Umbraco.Community.WhoIsHere -Version 0.9.2
<PackageReference Include="Umbraco.Community.WhoIsHere" Version="0.9.2" />
<PackageVersion Include="Umbraco.Community.WhoIsHere" Version="0.9.2" />
<PackageReference Include="Umbraco.Community.WhoIsHere" />
paket add Umbraco.Community.WhoIsHere --version 0.9.2
#r "nuget: Umbraco.Community.WhoIsHere, 0.9.2"
#:package Umbraco.Community.WhoIsHere@0.9.2
#addin nuget:?package=Umbraco.Community.WhoIsHere&version=0.9.2
#tool nuget:?package=Umbraco.Community.WhoIsHere&version=0.9.2
WhoIsHere
Shows, live on the document edit screen, which other backoffice users have the same document open, and which field each of them is in. It is a soft lock: it warns but never blocks editing or saving.
- Avatars of the other editors in the workspace footer, each in their own colour, with a list of where they are.
- A chip under the label of the field someone is in, including fields inside blocks.
- A notice when someone else saves the document you have open, with a Reload button.
Requires Umbraco 18.
Installation
dotnet add package Umbraco.Community.WhoIsHere
No other steps are needed.
Configuration
Everything is optional. Defaults:
{
"WhoIsHere": {
"Enabled": true,
"HeartbeatSeconds": 20,
"TimeoutSeconds": 60
}
}
| Setting | Meaning |
|---|---|
Enabled |
false skips registration entirely. The hub is not mapped, and the client quietly shows nothing. |
HeartbeatSeconds |
How often each open document tells the server it is still there. The client reads this value from the server, so you only set it in one place. |
TimeoutSeconds |
How long a presence can go without a heartbeat before it is dropped. This only matters for clients that vanish without disconnecting, such as a frozen tab or a sleeping laptop. Closing a tab normally clears the presence within a second. |
The sweeper runs every TimeoutSeconds / 4, so a dead client lingers for up to 25% longer than the timeout. With the defaults that is 60–75 seconds.
Known limitations
- Single server only by default; see Load balancing below.
- Presence is per document, not per culture or variant.
- If two people save at almost the same moment, the save notice may name the wrong person or not appear.
- Someone who loses access to a document while it is open keeps seeing who else is there until they leave it.
- Field highlighting adds its chip to Umbraco's property markup directly, as there is no extension point for it. A future Umbraco change to that markup could break the highlighting, but presence and the footer would keep working.
- Block names in modals are read from the modal title, so occasionally the block's type name is shown instead.
- Field highlighting follows keyboard focus, so fields that never take focus don't show a chip.
- Only documents are supported, not media or members.
Load balancing
Presence is held in memory on each server, so a load-balanced backoffice needs a SignalR backplane (such as Redis or Azure SignalR Service) and a shared IPresenceStore. Register your store before WhoIsHere's composer runs and it will be used instead.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Umbraco.Cms.Api.Management (>= 18.0.0 && < 19.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.