Hi Maggie, thanks for the bug report.
Does the cursor usually disappear after a short time? Or does it stick around indefinitely?
This demo uses anonymous authentication, meaning a temporary user is created each time the page is loaded and you enter a Display Name. Even if the display name is the same, a new and separate user will be created. Since the demo doesn’t have time to fire a “logout” event when the window unloads (is refreshed, etc), the server doesn’t know immediately that the user is no longer there. Thus, a new user (again, possibly with the same “display name”) could join the project and briefly still see the presence of the previously connected user. It should only be a few seconds before the server detects that the previous user has become disconnected (there are ping/pong events sent every ~30 seconds or so).
A production implementation of this sort of application would have persistent (“real”) domain users, such that when a user reconnects the server knows that it is the same user, which would avoid this sort of behavior.
We don’t recommend using anonymous authentication in production due to the obvious security concerns (anyone could just connect and use all of the API however they like).
Does that make sense?