diff options
| author | Fuwn <[email protected]> | 2021-03-21 12:36:41 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2021-03-21 12:36:41 -0700 |
| commit | c7c7ee4a82c0d70129159b687fb6d959bf691ba9 (patch) | |
| tree | 4fd34e71a95949fa35a132593895208db43e3655 /src/protocol | |
| parent | fix: deploys now get cancelled on new deploys (diff) | |
| download | book-c7c7ee4a82c0d70129159b687fb6d959bf691ba9.tar.xz book-c7c7ee4a82c0d70129159b687fb6d959bf691ba9.zip | |
etc: gammadocs information
Diffstat (limited to 'src/protocol')
| -rw-r--r-- | src/protocol/packet.md | 2 | ||||
| -rw-r--r-- | src/protocol/room_server/room_server.md | 21 | ||||
| -rw-r--r-- | src/protocol/user_server/user_server.md | 25 |
3 files changed, 47 insertions, 1 deletions
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. |