the broadcast xml project
- one 'transciever' process that produces and consumes written in java
- user interface is both a monitor and a controller
- XML objects being passed in UDP packets to the broadcast address
- lightweight message broadcast only, written in c for stylistics
upon process startup
Load all the .xml files in the xmlobjects directory. When a new message or other type is created, just drop a new file into this directory.
<type> DisplayMessage </type>
<html> I am the <b>html</b> the client should display on the screen. </html>
<url> http://client.IP/path.to.same.message </url>
The client response upon reception of this message is to render the html and display it.
<type> HostAnnouncement </type>
<name> Pioneer Sq </name>
<IP> 10.11.12.1 </IP>
<url> http://10.11.12.1:5280/status </url>
<essid> www.personaltelco.net </essid>
The client response is to put up an icon representing this host.
<type> UserAnnouncement </type>
<ircchannel> irc://irc.openprojects.net/#wireless </ircchannel>
<ircnick> zerocool </ircnick>
<email> firstname.lastname@example.org </email>
<url> http://user.home/page </url>
<icon> BINARY IMAGE DATA </icon>
The client response is to put up an icon representing the user.
Im not sure how much data i can put into one UDP packet. There is no notion of a stream. maybe I can mark the data with <bxml_message> and if you havent received a </bxml_message>, then keep appending the subsequent packets to the message.
look into Jabber message types. there is possibly a lot of overlap here.
Want to play with broadcast packets and java? Get this file http://klickitat.yi.org/~donp/bxml/shell.jar. Run it with 'java -jar shell.jar'. You have one command: speak [message]. This will transmit a UDP packet to address 255.255.255.255, port 2009. Its it funny how broadcast packets still have port numbers. Any other computer in the same collision domain that is also running shell.jar will pickup on this packet and print to the screen.