Building the Reflector
We’re going to build the reflector as a component that connects directly to the Jabber backbone. This makes sense, as it’s a service that we’ll probably want to run continuously (and perhaps start up and shut down in conjunction with the Jabber server itself), rather than something more transient like a client-based ‘bot, for example.
Before we go any further, have a look at Figure 10-9.
![]() |
This figure shows WinJab’s browser window, which, when first opened, requests
the top-level browse information from
the Jabber server that WinJab is connected to (cicero,
in this case). This is the
information in the <browse/> section
of the JSM component custom configuration, as described in
Section 4.4.3.8, which looks like:
<browse> <conference type='public' jid='conf.cicero' name='Public Chat'/> </browse>
We can see just one icon, representing the Public Chat conference service.
WinJab sensibly uses this location—the Jabber server (specifically
the JSM)
itself— as a starting position for browsing navigation. From
the description of jabber:iq:browse in
Section 6.2.5, we know that each element
within a <browse/> section is identified
with a JID, in the jid attribute.
Here, the Public Chat
element has a JID of conf.cicero. If we click on the element’s icon in WinJab’s browser window, it would make a further browse request—an IQ-get ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access
