From c7c7ee4a82c0d70129159b687fb6d959bf691ba9 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Sun, 21 Mar 2021 12:36:41 -0700 Subject: etc: gammadocs information --- src/SUMMARY.md | 6 ++++ src/gamma_docs/gamma_docs.md | 3 ++ .../user_server_configuration_options.md | 40 ++++++++++++++++++++++ src/protocol/packet.md | 2 +- src/protocol/room_server/room_server.md | 21 ++++++++++++ src/protocol/user_server/user_server.md | 25 ++++++++++++++ 6 files changed, 96 insertions(+), 1 deletion(-) create mode 100644 src/gamma_docs/gamma_docs.md create mode 100644 src/gamma_docs/room_server/user_server_configuration_options.md create mode 100644 src/protocol/room_server/room_server.md create mode 100644 src/protocol/user_server/user_server.md (limited to 'src') diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 4fb963b..26f1759 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -6,9 +6,15 @@ - [Workflow](./introduction/workflow.md) - [Contributing](./introduction/contributing.md) +- [The GammaDocs](./gamma_docs/gamma_docs.md) + - [RoomServer]() + - [UserServer Configuration Options](gamma_docs/room_server/user_server_configuration_options.md) + - [The WorldServer Protocol]() - [Packet Information](./protocol/packet.md) - [Network Constants](./protocol/constants.md) + - [RoomServer](./protocol/room_server/room_server.md) + - [UserServer](./protocol/user_server/user_server.md) - [worlds.jar]() - [NET.worlds]() diff --git a/src/gamma_docs/gamma_docs.md b/src/gamma_docs/gamma_docs.md new file mode 100644 index 0000000..9c04fdd --- /dev/null +++ b/src/gamma_docs/gamma_docs.md @@ -0,0 +1,3 @@ +# The GammaDocs +The [GammaDocs](http://dev.worlds.net/private/GammaDocs/Dev_Kit_Intro.html) is a documentation +based development kit which provides insight about the interlocking of Worlds. diff --git a/src/gamma_docs/room_server/user_server_configuration_options.md b/src/gamma_docs/room_server/user_server_configuration_options.md new file mode 100644 index 0000000..e723202 --- /dev/null +++ b/src/gamma_docs/room_server/user_server_configuration_options.md @@ -0,0 +1,40 @@ +# UserServer Configuration Options +Note, a lot of the contents of this page have been stripped. + +## Logging +Inclusion of this keyword enables logging of every command that passes over the network (both +input and output), as well as logging of various other information. It is primarily intended to be +used for debugging. All of this debugging information is appended to the ".out" file not the ".log" +file. + +Logging can also be toggled on and off while the UserServer is running by sending the server +SIGUSR1: `kill -USR1 pid` + +Use logging carefully, it generates a very large amount of output to the UserServer output file. +Logging functionality and these keywords are only available in UserServers that have been compiled +for Worlds' internal use. + +This feature is disabled by default. + +### InternalHttpServer +This is the base URL of the machine to use for handling HTTP requests for the internal version of +Gamma. For example: http://dev.worlds.net + +### ExternalHttpServer +This is the base URL of the machine to use for handling static HTTP requests for the release (i.e. +external) version of Gamma. For example: http://www-static.us.worlds.net + +### ScriptServer +Similar to ExternalHttpServer, this is the URL of the directory where server scripts should be +executed. This is for things like the registration script and various other maintenance scripts. +Example: http://www-dynamic.us.worlds.net/cgi-bin + +### BindAddr (UserServer only) +Used when you wish to run two UserServers on a single multi-homed machine. This is really only +useful for redirecting traffic on one of the UserServers to a set of remote RoomServers. + +### SmtpServer +The SMTP server to used to connect to for sending WorldsMail. + +### MailDomain +The DNS domain to use in the "from" address when sending WorldsMail. diff --git a/src/protocol/packet.md b/src/protocol/packet.md index 20add95..6867489 100644 --- a/src/protocol/packet.md +++ b/src/protocol/packet.md @@ -5,5 +5,5 @@ Information about how Worlds send and handles packets. - [https://github.com/Xyem/LibreWorlds/wiki/Packet-types](https://github.com/Xyem/LibreWorlds/wiki/Packet-types) - [https://github.com/Xyem/LibreWorlds/wiki/Packet-structure](https://github.com/Xyem/LibreWorlds/wiki/Packet-types) -## References +## Local Resources Most of [NET.worlds.network](). diff --git a/src/protocol/room_server/room_server.md b/src/protocol/room_server/room_server.md new file mode 100644 index 0000000..a186a8e --- /dev/null +++ b/src/protocol/room_server/room_server.md @@ -0,0 +1,21 @@ +# RoomServer +The following page is directly quoted from the [GammaDocs](http://dev.worlds.net/private/GammaDocs/Dev_Kit_Intro.html). + +## Description +The RoomServer can operate in stand-alone mode to handle an entire +world when no user authentication is required. For larger worlds, or when user authentication and +registration are required, multiple RoomServers can be used in conjunction with a UserServer. If +shared state (shared objects) is desired, the RoomServer must run in conjunction with an Oracle +database that will store persistent room data. The RoomServer performs the following tasks: + +- Listens on a given port to connections by clients. +- Establishes and maintains TCP/IP client connections (when used in conjunction with a UserServer, + UserServer will establish the first TCP/IP connection with a client and then redirect users to the RoomServers). +- Subscribes clients to any room the RoomServer is servicing +- Processes client's avatar locations and properties. +- Disseminates and provides client locations and properties information to other clients in the + vicinity. Performs crowd control calculations that determine how avatars are seen and heard by others. +- Handles and distributes chat text, whispers and broadcast text. Whispers and other messages + targeted at users not on that RoomServer are forwarded to the UserServer for routing. +- Acts as a database client for a properties database to query or modify Room properties, if any. + This includes accessing properties for any shared state or shared objects found in rooms. diff --git a/src/protocol/user_server/user_server.md b/src/protocol/user_server/user_server.md new file mode 100644 index 0000000..f46e043 --- /dev/null +++ b/src/protocol/user_server/user_server.md @@ -0,0 +1,25 @@ +# UserServer +The following page is directly quoted from the [GammaDocs](http://dev.worlds.net/private/GammaDocs/Dev_Kit_Intro.html). + +## Description +The UserServer is used for larger worlds that require more than one RoomServer, or when user +registration and authentication are required. When user registration and authentication are not +required, the UserServer is used in anonymous mode, and can handle large worlds with multiple +RoomServers. When user registration and authentication are needed, the UserServer maintains a user +database and is configured to provide the necessary user services. The UserServer performs the +following tasks: + + +- Listens on a port for connections from RoomServers. On startup, every RoomServer opens a TCP/IP + connection to the UserServer. +- Maintains that TCP/IP connection with the RoomServers as long as the RoomServer is running. + UserServer - RoomServer communications fall into one of the following categories: user connection and privileges management, redirection, whisper forwarding, broadcast text, and miscellaneous properties management. +- Listens on a designated port for new connections from clients. +- Establishes "transactional" TCP/IP connections with clients for the purposes of logging in, + providing redirection to RoomServers, and other user queries. Transactional means that the client connection to the UserServer is maintained only as long as it takes to complete the desired transaction, then the client is either redirected to a RoomServer or dropped after a "grace period" of two minutes. +- Provides registration and authentication services when registration and authentication are + required. +- Acts as database client to query or maintain a user database when registration and + authentication services are required. +- Acts as database client to query or maintain a World properties database when persistent + property changes are made by users or administrators. -- cgit v1.2.3