<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Orbiter Room List</title>
<!--Load the Orbiter JavaScript library (non-minified version). Use during development.-->
<script type="text/javascript" src="http://unionplatform.com/cdn/Orbiter_latest.js"></script>
<!--Load the Orbiter JavaScript library (minified version). Use for production.-->
<!--<script type="text/javascript" src="http://unionplatform.com/cdn/Orbiter_latest_min.js"></script>-->
<!--Application code-->
<script type="text/javascript">
//==============================================================================
// VARIABLES
//==============================================================================
var orbiter;
var roomlist;
//==============================================================================
// INITIALIZATION
//==============================================================================
function init () {
// Create the Orbiter instance, used to connect to and communicate with Union,
// then enable automatic reconnection (one attempt every 15 seconds)
orbiter = new net.user1.orbiter.Orbiter();
orbiter.getConnectionMonitor().setAutoReconnectFrequency(15000);
orbiter.getLog().setLevel(net.user1.logger.Logger.DEBUG);
// Register for Orbiter's connection events
orbiter.addEventListener(net.user1.orbiter.OrbiterEvent.READY, readyListener, this);
orbiter.addEventListener(net.user1.orbiter.OrbiterEvent.CLOSE, closeListener, this);
// The room listbox
roomlist = document.getElementById("roomlist");
roomlist.style.width = "300px";
// Connect to Union Server
orbiter.connect("tryunion.com", 80);
}
//==============================================================================
// ORBITER EVENT LISTENERS
//==============================================================================
function readyListener (e) {
orbiter.getRoomManager().addEventListener(net.user1.orbiter.RoomManagerEvent.ROOM_ADDED, roomAddedListener);
orbiter.getRoomManager().addEventListener(net.user1.orbiter.RoomManagerEvent.ROOM_REMOVED, roomRemovedListener);
// Register to be notified when rooms with the qualifier "examples" are added
// to or removed from the server.
orbiter.getRoomManager().watchForRooms("examples");
// To be notified when *any* room is added to or removed from the server, remove
// the preceding line and uncomment the following line:
// orbiter.getRoomManager().watchForRooms();
}
// Triggered when the connection is closed
function closeListener (e) {
}
//==============================================================================
// ROOM EVENT LISTENERS
//==============================================================================
// Triggered when a room is added to the server
function roomAddedListener (e) {
addListOption(e.getRoomID(), e.getRoomID());
}
// Triggered when a room is removed from the server
function roomRemovedListener (e) {
removeListOption(e.getRoomID());
}
//==============================================================================
// SELECT MANAGEMENT
//==============================================================================
function addListOption (name, value) {
var option;
option = document.createElement("option");
option.text = name;
option.value = value;
roomlist.add(option);
}
function removeListOption (value) {
for (var i = 0; i < roomlist.length; i++) {
if (roomlist.options[i].value == value) {
roomlist.remove(i);
return;
}
}
}
</script>
</head>
<body onload="init()">
<!--Contains the rooms-->
<select id="roomlist" size="10" multiple="multiple">
</select>
</body>
</html>