Xelagot server/client



The idea behind the Server/Client software in the Xelagot is to provide a means of communication between Xelagots running scripts when they are not in the same program. The bots don't need to be logged into an Active Worlds universe to use this software, but they must be connected to the Internet.

There are three categories of software:

  1. the Server
  2. the Central Client
  3. the Bot Clients

The Server:
Each program has one central tcp/ip server, to which multiple connections can be opened by client applications: it listens and waits for client applications to contact it. The server communicates with the user through the server/clients user interface and with each individual bot in the program if they are running appropriate scripts (not normally used). It has its own list of login names and passwords to screen the remote client applicants. The clients connecting to this server can be Central Clients or Bot Clients of a xelagot application, or clients of any application which respects the xelagot protocol. For the purposes of establishing communication between xelagots and the Server, only xelagot Bot Clients are used: these must be registered in the Server's connection list with a special "bot" protocol.

The Central Client:
Each program has one central client which can be activated by the user through the Clients user interface: it can contact the server of another (or the same) xelagot program, if it knows the IP and Port of that program, and the login name and password - and can be used as a private chat interface. This client is not used to connect bots or run scripts: for that, each bot has a Bot Client.

The Bot Clients:
Besides the central client, each bot in the program has its own client, which can only be used by the bot if it is running a script which includes client/server statements and event handlers. The bot client opens or closes a connection and communicates with a server in a xelagot program through scripting statements. It can also be managed through the user interface: Clients user interface, but this is not the normal procedure to follow.