[Standards-JIG] Lurking and JEP-045
ghudson at MIT.EDU
Mon Oct 2 17:08:19 UTC 2006
I'll define "lurking" as participating in a MUC without sending any
messages and without any indication of your presence. Note that
simply participating anonymously is not lurking; other MUC
participants are still notified that *someone* has entered and left
the room, and may even be able to correlate that fact with other
information to determine the participant's identity.
A JEP-045 room cannot allow lurking, as section 7.1.3 states:
The service MUST also send presence from the new occupant's room JID
to the full JIDs of all the occupants (including the new occupant)
Possible use cases for allowing lurking include:
1. Moderated events: a large moderated event, such as a conference
panel discussion or a "chat with famous celebrity" event,
typically has a few voiced participants and a bunch of
spectators. The spectators typically do not care about each
others' presence (although they may be interested in the number
of spectators), and any client notifications of other spectators
entering or leaving would just be noise. However, if the room is
JEP-045 compliant it must send O(n^2) stanzas to apprise the
spectators of each others' presence. For the sake of scalable
traffic costs and to reduce client noise, such a room might want
to enable or even force spectators to lurk.
2. Heightened anonymity: a support-group type room might want to
allow lurking to allow new people to "scout the territory"
tracelessly in order to encourage participation.
3. Reduced-commitment help: an informal technical support forum,
which might not allow anonymous participation, might still want
to allow lurking so that people can listen in for questions
they're interested in answering without appearing available to
The basic approach to enabling lurking options in JEP-045 is to relax
section 7.1.3 to allow some occupants to be hidden (and thus excepted
from the "MUST send presence" rules) as long as they haven't sent any
messages. A room might then be configured to defer the presence
broadcast for a new participant until they first send a message, or to
withhold presence broadcasts for all unvoiced occupants. This
relaxation should be completely transparent to existing clients, since
they will never see a message from a hidden occupant.
From there, we could define extensions to:
* Query whether a room will advertise your presence if you join it.
* Query whether a room has advertised your presence to others
(possibly unnecessary; one can deduce that from the previous
extension and whether you have sent a message).
* Advertise your presence without actually sending a message.
(Might be disallowed if the room is forcing you to lurk, as in use
* Query the number of participants in a chatroom if allowed; this
might be useful in use case 1.
* De-advertise your presence without actually leaving the room
(equivalent to leaving and re-joining as a lurker), which could be
useful in use case 3.
Comments are appreciated. I'm interested in knowing whether the
community would be receptive to amending JEP-045 to allow lurking
options, and what the normal procedure is for amending an existing
Apologies if this has come up before. I scanned the archives for the
last few months, but didn't do an exhaustive search.
More information about the Standards