aboutsummaryrefslogtreecommitdiff
path: root/docs/worldserver-protocol/userserver/index.html
blob: ebc5d2315829554480b769ac5c2bc69fa8d191c8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<!doctype html>
<html lang="en" dir="ltr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="generator" content="Docusaurus v2.0.0-beta.1">
<link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Whirlsplash Blog RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Whirlsplash Blog Atom Feed">
<link rel="search" type="application/opensearchdescription+xml" title="Whirlsplash" href="/opensearch.xml"><title data-react-helmet="true">UserServer | Whirlsplash</title><meta data-react-helmet="true" property="og:url" content="https://whirlsplash.org/docs/worldserver-protocol/userserver"><meta data-react-helmet="true" name="docsearch:language" content="en"><meta data-react-helmet="true" name="docsearch:version" content="current"><meta data-react-helmet="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-react-helmet="true" property="og:title" content="UserServer | Whirlsplash"><meta data-react-helmet="true" name="description" content="The following information is directly quoted from the GammaDocs."><meta data-react-helmet="true" property="og:description" content="The following information is directly quoted from the GammaDocs."><link data-react-helmet="true" rel="shortcut icon" href="/img/Whirl.png"><link data-react-helmet="true" rel="canonical" href="https://whirlsplash.org/docs/worldserver-protocol/userserver"><link data-react-helmet="true" rel="alternate" href="https://whirlsplash.org/docs/worldserver-protocol/userserver" hreflang="en"><link data-react-helmet="true" rel="alternate" href="https://whirlsplash.org/docs/worldserver-protocol/userserver" hreflang="x-default"><link data-react-helmet="true" rel="preconnect" href="https://BH4D9OD16A-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.226e86b6.css">
<link rel="preload" href="/assets/js/runtime~main.fd955824.js" as="script">
<link rel="preload" href="/assets/js/main.429ecde2.js" as="script">
</head>
<body>
<script>!function(){function e(e){document.documentElement.setAttribute("data-theme",e)}var t=function(){var e=null;try{e=localStorage.getItem("theme")}catch(e){}return e}();null!==t?e(t):window.matchMedia("(prefers-color-scheme: dark)").matches?e("dark"):window.matchMedia("(prefers-color-scheme: light)").matches?e("light"):e("dark")}()</script><div id="__docusaurus">
<div><a href="#main" class="skipToContent_1oUP shadow--md">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><img src="/img/Whirl.png" alt="Whirlsplash logo" class="themedImage_1VuW themedImage--light_3UqQ navbar__logo"><img src="/img/Whirl.png" alt="Whirlsplash logo" class="themedImage_1VuW themedImage--dark_hz6m navbar__logo"><b class="navbar__title">Whirlsplash</b></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/docs/">Docs</a><a class="navbar__item navbar__link" href="/blog">Blog</a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" class="navbar__item navbar__link"><span><svg viewBox="0 0 20 20" width="20" height="20" aria-hidden="true" style="vertical-align:text-bottom;margin-right:5px"><path fill="currentColor" d="M19.753 10.909c-.624-1.707-2.366-2.726-4.661-2.726-.09 0-.176.002-.262.006l-.016-2.063 3.525-.607c.115-.019.133-.119.109-.231-.023-.111-.167-.883-.188-.976-.027-.131-.102-.127-.207-.109-.104.018-3.25.461-3.25.461l-.013-2.078c-.001-.125-.069-.158-.194-.156l-1.025.016c-.105.002-.164.049-.162.148l.033 2.307s-3.061.527-3.144.543c-.084.014-.17.053-.151.143.019.09.19 1.094.208 1.172.018.08.072.129.188.107l2.924-.504.035 2.018c-1.077.281-1.801.824-2.256 1.303-.768.807-1.207 1.887-1.207 2.963 0 1.586.971 2.529 2.328 2.695 3.162.387 5.119-3.06 5.769-4.715 1.097 1.506.256 4.354-2.094 5.98-.043.029-.098.129-.033.207l.619.756c.08.096.206.059.256.023 2.51-1.73 3.661-4.515 2.869-6.683zm-7.386 3.188c-.966-.121-.944-.914-.944-1.453 0-.773.327-1.58.876-2.156a3.21 3.21 0 011.229-.799l.082 4.277a2.773 2.773 0 01-1.243.131zm2.427-.553l.046-4.109c.084-.004.166-.01.252-.01.773 0 1.494.145 1.885.361.391.217-1.023 2.713-2.183 3.758zm-8.95-7.668a.196.196 0 00-.196-.145h-1.95a.194.194 0 00-.194.144L.008 16.916c-.017.051-.011.076.062.076h1.733c.075 0 .099-.023.114-.072l1.008-3.318h3.496l1.008 3.318c.016.049.039.072.113.072h1.734c.072 0 .078-.025.062-.076-.014-.05-3.083-9.741-3.494-11.04zm-2.618 6.318l1.447-5.25 1.447 5.25H3.226z"></path></svg><span>English</span></span></a><ul class="dropdown__menu"><li><a href="/docs/worldserver-protocol/userserver" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" style="text-transform:capitalize">English</a></li><li><a href="https://github.com/whirlsplash/site" target="_blank" rel="noopener noreferrer" class="dropdown__link">Help us translate!</a></li></ul></div><a href="https://github.com/whirlsplash/site" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link"><span>GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_3J9K"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></span></a><div class="react-toggle displayOnlyInLargeViewport_GrZ2 react-toggle--checked react-toggle--disabled"><div class="react-toggle-track" role="button" tabindex="-1"><div class="react-toggle-track-check"><span class="toggle_71bT">🌜</span></div><div class="react-toggle-track-x"><span class="toggle_71bT">🌞</span></div><div class="react-toggle-thumb"></div></div><input type="checkbox" checked="" class="react-toggle-screenreader-only" aria-label="Switch between dark and light mode"></div><div class="searchBox_1Doo"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div><div class="navbar-sidebar"><div class="navbar-sidebar__brand"><a class="navbar__brand" href="/"><img src="/img/Whirl.png" alt="Whirlsplash logo" class="themedImage_1VuW themedImage--light_3UqQ navbar__logo"><img src="/img/Whirl.png" alt="Whirlsplash logo" class="themedImage_1VuW themedImage--dark_hz6m navbar__logo"><b class="navbar__title">Whirlsplash</b></a></div><div class="navbar-sidebar__items"><div class="menu"><ul class="menu__list"><li class="menu__list-item"><a aria-current="page" class="menu__link navbar__link--active" href="/docs/">Docs</a></li><li class="menu__list-item"><a class="menu__link" href="/blog">Blog</a></li><li class="menu__list-item menu__list-item--collapsed"><a href="#" role="button" class="menu__link menu__link--sublist"><span><svg viewBox="0 0 20 20" width="20" height="20" aria-hidden="true" style="vertical-align:text-bottom;margin-right:5px"><path fill="currentColor" d="M19.753 10.909c-.624-1.707-2.366-2.726-4.661-2.726-.09 0-.176.002-.262.006l-.016-2.063 3.525-.607c.115-.019.133-.119.109-.231-.023-.111-.167-.883-.188-.976-.027-.131-.102-.127-.207-.109-.104.018-3.25.461-3.25.461l-.013-2.078c-.001-.125-.069-.158-.194-.156l-1.025.016c-.105.002-.164.049-.162.148l.033 2.307s-3.061.527-3.144.543c-.084.014-.17.053-.151.143.019.09.19 1.094.208 1.172.018.08.072.129.188.107l2.924-.504.035 2.018c-1.077.281-1.801.824-2.256 1.303-.768.807-1.207 1.887-1.207 2.963 0 1.586.971 2.529 2.328 2.695 3.162.387 5.119-3.06 5.769-4.715 1.097 1.506.256 4.354-2.094 5.98-.043.029-.098.129-.033.207l.619.756c.08.096.206.059.256.023 2.51-1.73 3.661-4.515 2.869-6.683zm-7.386 3.188c-.966-.121-.944-.914-.944-1.453 0-.773.327-1.58.876-2.156a3.21 3.21 0 011.229-.799l.082 4.277a2.773 2.773 0 01-1.243.131zm2.427-.553l.046-4.109c.084-.004.166-.01.252-.01.773 0 1.494.145 1.885.361.391.217-1.023 2.713-2.183 3.758zm-8.95-7.668a.196.196 0 00-.196-.145h-1.95a.194.194 0 00-.194.144L.008 16.916c-.017.051-.011.076.062.076h1.733c.075 0 .099-.023.114-.072l1.008-3.318h3.496l1.008 3.318c.016.049.039.072.113.072h1.734c.072 0 .078-.025.062-.076-.014-.05-3.083-9.741-3.494-11.04zm-2.618 6.318l1.447-5.25 1.447 5.25H3.226z"></path></svg><span>Languages</span></span></a><ul class="menu__list"><li class="menu__list-item"><a href="/docs/worldserver-protocol/userserver" target="_self" rel="noopener noreferrer" class="menu__link dropdown__link--active" style="text-transform:capitalize">English</a></li><li class="menu__list-item"><a href="https://github.com/whirlsplash/site" target="_blank" rel="noopener noreferrer" class="menu__link">Help us translate!</a></li></ul></li><li class="menu__list-item"><a href="https://github.com/whirlsplash/site" target="_blank" rel="noopener noreferrer" class="menu__link"><span>GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_3J9K"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></span></a></li></ul></div></div></div></nav><div class="main-wrapper docs-wrapper doc-page"><div class="docPage_31aa"><aside class="docSidebarContainer_3Kbt"><div class="sidebar_15mo"><nav class="menu menu--responsive thin-scrollbar menu_Bmed" aria-label="Sidebar navigation"><button aria-label="Open menu" aria-haspopup="true" class="button button--secondary button--sm menu__button" type="button"><svg class="sidebarMenuIcon_fgN0" width="24" height="24" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><ul class="menu__list"><li class="menu__list-item menu__list-item--collapsed"><a class="menu__link menu__link--sublist" href="#!">Introduction</a><ul class="menu__list"><li class="menu__list-item"><a class="menu__link" tabindex="-1" href="/docs/">Basis</a></li><li class="menu__list-item"><a class="menu__link" tabindex="-1" href="/docs/introduction/resources">Resources</a></li><li class="menu__list-item"><a class="menu__link" tabindex="-1" href="/docs/introduction/workflow">Workflow</a></li><li class="menu__list-item"><a class="menu__link" tabindex="-1" href="/docs/introduction/contributing">Contributing</a></li><li class="menu__list-item"><a class="menu__link" tabindex="-1" href="/docs/introduction/setting_up_a_development_environment">Setting up a development environment</a></li></ul></li><li class="menu__list-item menu__list-item--collapsed"><a class="menu__link menu__link--sublist" href="#!">Whirl</a><ul class="menu__list"><li class="menu__list-item"><a class="menu__link" tabindex="-1" href="/docs/whirl/deploying_setup">Deploying (Setup)</a></li><li class="menu__list-item"><a class="menu__link" tabindex="-1" href="/docs/whirl/configuration">Configuration</a></li></ul></li><li class="menu__list-item menu__list-item--collapsed"><a class="menu__link menu__link--sublist" href="#!">GammaDocs</a><ul class="menu__list"><li class="menu__list-item"><a class="menu__link" tabindex="-1" href="/docs/gammadocs/roomserver/userserver-configuration-options">UserServer Configuration Options</a></li></ul></li><li class="menu__list-item"><a class="menu__link menu__link--sublist menu__link--active" href="#!">WorldServer Protocol</a><ul class="menu__list"><li class="menu__list-item"><a class="menu__link" tabindex="0" href="/docs/worldserver-protocol/packet-information">Packet Information</a></li><li class="menu__list-item"><a class="menu__link" tabindex="0" href="/docs/worldserver-protocol/network-constants">Network Constants</a></li><li class="menu__list-item"><a class="menu__link" tabindex="0" href="/docs/worldserver-protocol/roomserver">RoomServer</a></li><li class="menu__list-item"><a aria-current="page" class="menu__link menu__link--active active" tabindex="0" href="/docs/worldserver-protocol/userserver">UserServer</a></li></ul></li><li class="menu__list-item menu__list-item--collapsed"><a class="menu__link menu__link--sublist" href="#!">worlds.jar</a><ul class="menu__list"><li class="menu__list-item menu__list-item--collapsed"><a class="menu__link menu__link--sublist" href="#!" tabindex="-1">NET.worlds</a><ul class="menu__list"><li class="menu__list-item menu__list-item--collapsed"><a class="menu__link menu__link--sublist" href="#!" tabindex="-1">network</a><ul class="menu__list"><li class="menu__list-item"><a class="menu__link" tabindex="-1" href="/docs/worlds-jar/net-worlds/network/objid">ObjId</a></li><li class="menu__list-item"><a class="menu__link" tabindex="-1" href="/docs/worlds-jar/net-worlds/network/serveroutputstream">ServerOutputStream</a></li><li class="menu__list-item"><a class="menu__link" tabindex="-1" href="/docs/worlds-jar/net-worlds/network/netconst">netConst</a></li><li class="menu__list-item"><a class="menu__link" tabindex="-1" href="/docs/worlds-jar/net-worlds/network/netpacket">netPacket</a></li></ul></li></ul></li></ul></li></ul></nav></div></aside><main class="docMainContainer_3ufF"><div class="container padding-top--md padding-bottom--lg docItemWrapper_3FMP"><div class="row"><div class="col docItemCol_3FnS"><div class="docItemContainer_33ec"><article><div class="markdown"><header><h1 class="h1Heading_27L5">UserServer</h1></header><p>The following information is directly quoted from the <a href="http://dev.worlds.net/private/GammaDocs/Dev_Kit_Intro.html" target="_blank" rel="noopener noreferrer">GammaDocs</a>.</p><p>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:</p><ul><li>Listens on a port for connections from RoomServers. On startup, every RoomServer opens a TCP/IP
connection to the UserServer.</li><li>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.</li><li>Listens on a designated port for new connections from clients.</li><li>Establishes &quot;transactional&quot; 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 &quot;grace period&quot; of two minutes.</li><li>Provides registration and authentication services when registration and authentication are
required.</li><li>Acts as database client to query or maintain a user database when registration and
authentication services are required.</li><li>Acts as database client to query or maintain a World properties database when persistent
property changes are made by users or administrators.</li></ul></div><footer class="row docusaurus-mt-lg"><div class="col"><a href="https://github.com/whirlsplash/site/edit/master/website/docs/worldserver-protocol/userserver.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_2_ui" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_3DPF"></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><div class="pagination-nav__item"><a class="pagination-nav__link" href="/docs/worldserver-protocol/roomserver"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">« RoomServer</div></a></div><div class="pagination-nav__item pagination-nav__item--next"><a class="pagination-nav__link" href="/docs/worlds-jar/net-worlds/network/objid"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">ObjId »</div></a></div></nav></div></div><div class="col col--3"><div class="tableOfContents_35-E thin-scrollbar"></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items"><li class="footer__item"><a class="footer__link-item" href="/docs/">Getting Started</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/worldserver-protocol/packet-information">Technical Information</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items"><li class="footer__item"><a class="footer__link-item" href="/blog">Blog</a></li><li class="footer__item"><a href="https://twitter.com/Whirlsplash_" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter</a></li><li class="footer__item"><a href="https://discord.com/invite/8hn6padWF6" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord</a></li><li class="footer__item"><a href="https://www.reddit.com/r/Whirlsplash" target="_blank" rel="noopener noreferrer" class="footer__link-item">Subreddit</a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items"><li class="footer__item"><a href="https://github.com/whirlsplash" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub</a></li><li class="footer__item"><a href="https://github.com/Whirlsplash/site/blob/main/LICENSE" target="_blank" rel="noopener noreferrer" class="footer__link-item">License</a></li><li class="footer__item"><a href="mailto:[email protected]" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contact</a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright (C) 2021-2021 The Whirlsplash Collective</div></div></div></footer></div>
<script src="/assets/js/runtime~main.fd955824.js"></script>
<script src="/assets/js/main.429ecde2.js"></script>
</body>
</html>