What Gets Sent
Madara Uchiha posted a comment asking about what information was being tracked. This answer should help clarify what's going on.
The Client
When the script sends a message to the server, it is one of four types:
active
- sent whenever the tab loses or gains focus. Other users will see your image fade when focus is lost.typing
- sent whenever you type something in the text box at the bottom of the chat window. Other users will see a flashing dot next to your name. Only the current time is sent to the server - never the contents of the text box.position
- sent whenever you "read" a new message. If the tab has focus, this will be sent immediately as each message appears onscreen. If not, the script waits until the tab has focus again to indicate where you've read.ping
- empty message sent to keep the socket connection alive.
The first two types of messages (active
and typing
) can be disabled if you don't want others to find out if the tab has focus or when you're typing.
The Server
Once the server receives a message, it is immediately broadcast to all other clients in that room. This allows the script running in their browsers to display your position and status.
In addition to the first three types of messages described above, the server can send one additional type of message to clients:
quit
sent when a user's connection is closed. The image of the user who left will fade and disappear.