<spanid="evennia-server-sessionhandler"></span><h1>evennia.server.sessionhandler<aclass="headerlink"href="#module-evennia.server.sessionhandler"title="Permalink to this headline">¶</a></h1>
<p>This module defines handlers for storing sessions when handles
sessions of users connecting to the server.</p>
<p>There are two similar but separate stores of sessions:</p>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.sessionhandler.</code><codeclass="sig-name descname">DummySession</code><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#DummySession"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.DummySession"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">sessid</code><emclass="property"> = 0</em><aclass="headerlink"href="#evennia.server.sessionhandler.DummySession.sessid"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-prename descclassname">evennia.server.sessionhandler.</code><codeclass="sig-name descname">delayed_import</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#delayed_import"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.delayed_import"title="Permalink to this definition">¶</a></dt>
<dd><p>Helper method for delayed import of all needed entities.</p>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.sessionhandler.</code><codeclass="sig-name descname">SessionHandler</code><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#SessionHandler"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.SessionHandler"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">get</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">key</span></em>, <emclass="sig-param"><spanclass="n">default</span><spanclass="o">=</span><spanclass="default_value">None</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#SessionHandler.get"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.SessionHandler.get"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">get_sessions</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">include_unloggedin</span><spanclass="o">=</span><spanclass="default_value">False</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#SessionHandler.get_sessions"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.SessionHandler.get_sessions"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">get_all_sync_data</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#SessionHandler.get_all_sync_data"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.SessionHandler.get_all_sync_data"title="Permalink to this definition">¶</a></dt>
<dd><p>Create a dictionary of sessdata dicts representing all
sessions in store.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p><em>syncdata (dict)</em>– A dict of sync data.</p>
<codeclass="sig-name descname">clean_senddata</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">session</span></em>, <emclass="sig-param"><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#SessionHandler.clean_senddata"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.SessionHandler.clean_senddata"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.sessionhandler.</code><codeclass="sig-name descname">ServerSessionHandler</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.__init__"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">portal_connect</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">portalsessiondata</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.portal_connect"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.portal_connect"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">portal_session_sync</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">portalsessiondata</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.portal_session_sync"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.portal_session_sync"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">portal_sessions_sync</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">portalsessionsdata</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.portal_sessions_sync"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.portal_sessions_sync"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">portal_disconnect</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">session</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.portal_disconnect"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.portal_disconnect"title="Permalink to this definition">¶</a></dt>
<dd><p>Called from Portal when Portal session closed from the portal
side. There is no message to report in this case.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>session</strong> (<aclass="reference internal"href="evennia.server.session.html#evennia.server.session.Session"title="evennia.server.session.Session"><em>Session</em></a>) – The Session to disconnect</p>
<codeclass="sig-name descname">portal_disconnect_all</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.portal_disconnect_all"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.portal_disconnect_all"title="Permalink to this definition">¶</a></dt>
<dd><p>Called from Portal when Portal is closing down. All
Sessions should die. The Portal should not be informed.</p>
<codeclass="sig-name descname">start_bot_session</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">protocol_path</span></em>, <emclass="sig-param"><spanclass="n">configdict</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.start_bot_session"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.start_bot_session"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">portal_restart_server</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.portal_restart_server"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.portal_restart_server"title="Permalink to this definition">¶</a></dt>
<dd><p>Called by server when reloading. We tell the portal to start a new server instance.</p>
<codeclass="sig-name descname">portal_reset_server</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.portal_reset_server"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.portal_reset_server"title="Permalink to this definition">¶</a></dt>
<dd><p>Called by server when reloading. We tell the portal to start a new server instance.</p>
<codeclass="sig-name descname">portal_shutdown</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.portal_shutdown"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.portal_shutdown"title="Permalink to this definition">¶</a></dt>
<dd><p>Called by server when it’s time to shut down (the portal will shut us down and then shut
<codeclass="sig-name descname">login</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">session</span></em>, <emclass="sig-param"><spanclass="n">account</span></em>, <emclass="sig-param"><spanclass="n">force</span><spanclass="o">=</span><spanclass="default_value">False</span></em>, <emclass="sig-param"><spanclass="n">testmode</span><spanclass="o">=</span><spanclass="default_value">False</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.login"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.login"title="Permalink to this definition">¶</a></dt>
<li><p><strong>session</strong> (<aclass="reference internal"href="evennia.server.session.html#evennia.server.session.Session"title="evennia.server.session.Session"><em>Session</em></a>) – The Session to authenticate.</p></li>
<li><p><strong>account</strong> (<em>Account</em>) – The Account identified as associated with this Session.</p></li>
<li><p><strong>force</strong> (<em>bool</em>) – Login also if the session thinks it’s already logged in
(this can happen for auto-authenticating protocols)</p></li>
<li><p><strong>testmode</strong> (<em>bool</em><em>, </em><em>optional</em>) – This is used by unittesting for
faking login without any AMP being actually active.</p></li>
<codeclass="sig-name descname">disconnect</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">session</span></em>, <emclass="sig-param"><spanclass="n">reason</span><spanclass="o">=</span><spanclass="default_value">''</span></em>, <emclass="sig-param"><spanclass="n">sync_portal</span><spanclass="o">=</span><spanclass="default_value">True</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.disconnect"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.disconnect"title="Permalink to this definition">¶</a></dt>
<dd><p>Called from server side to remove session and inform portal
of this fact.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>session</strong> (<aclass="reference internal"href="evennia.server.session.html#evennia.server.session.Session"title="evennia.server.session.Session"><em>Session</em></a>) – The Session to disconnect.</p></li>
<li><p><strong>reason</strong> (<em>str</em><em>, </em><em>optional</em>) – A motivation for the disconnect.</p></li>
<li><p><strong>sync_portal</strong> (<em>bool</em><em>, </em><em>optional</em>) – Sync the disconnect to
<codeclass="sig-name descname">all_sessions_portal_sync</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.all_sessions_portal_sync"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.all_sessions_portal_sync"title="Permalink to this definition">¶</a></dt>
<dd><p>This is called by the server when it reboots. It syncs all session data
<codeclass="sig-name descname">session_portal_sync</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">session</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.session_portal_sync"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.session_portal_sync"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">session_portal_partial_sync</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">session_data</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.session_portal_partial_sync"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.session_portal_partial_sync"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">disconnect_all_sessions</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">reason</span><spanclass="o">=</span><spanclass="default_value">'You have been disconnected.'</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.disconnect_all_sessions"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.disconnect_all_sessions"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">disconnect_duplicate_sessions</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">curr_session</span></em>, <emclass="sig-param"><spanclass="n">reason</span><spanclass="o">=</span><spanclass="default_value">'Logged in from elsewhere. Disconnecting.'</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.disconnect_duplicate_sessions"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.disconnect_duplicate_sessions"title="Permalink to this definition">¶</a></dt>
<dd><p>Disconnects any existing sessions with the same user.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>curr_session</strong> (<aclass="reference internal"href="evennia.server.session.html#evennia.server.session.Session"title="evennia.server.session.Session"><em>Session</em></a>) – Disconnect all Sessions matching this one.</p></li>
<li><p><strong>reason</strong> (<em>str</em><em>, </em><em>optional</em>) – A motivation for disconnecting.</p></li>
<codeclass="sig-name descname">validate_sessions</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.validate_sessions"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.validate_sessions"title="Permalink to this definition">¶</a></dt>
<dd><p>Check all currently connected sessions (logged in and not) and
<codeclass="sig-name descname">account_count</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.account_count"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.account_count"title="Permalink to this definition">¶</a></dt>
<dd><p>Get the number of connected accounts (not sessions since a
account may have more than one session depending on settings).
Only logged-in accounts are counted here.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p><em>naccount (int)</em>– Number of connected accounts</p>
<codeclass="sig-name descname">all_connected_accounts</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.all_connected_accounts"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.all_connected_accounts"title="Permalink to this definition">¶</a></dt>
<dd><p>Get a unique list of connected and logged-in Accounts.</p>
<codeclass="sig-name descname">session_from_sessid</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">sessid</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.session_from_sessid"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.session_from_sessid"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">session_from_account</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">account</span></em>, <emclass="sig-param"><spanclass="n">sessid</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.session_from_account"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.session_from_account"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">sessions_from_account</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">account</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.sessions_from_account"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.sessions_from_account"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">sessions_from_puppet</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">puppet</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.sessions_from_puppet"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.sessions_from_puppet"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">sessions_from_character</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">puppet</span></em><spanclass="sig-paren">)</span><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.sessions_from_character"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">sessions_from_csessid</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">csessid</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.sessions_from_csessid"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.sessions_from_csessid"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">announce_all</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">message</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.announce_all"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.announce_all"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">data_out</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">session</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.data_out"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.data_out"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">get_inputfuncs</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.get_inputfuncs"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.get_inputfuncs"title="Permalink to this definition">¶</a></dt>
<dd><p>Get all registered inputfuncs (access function)</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p><em>inputfuncs (dict)</em>– A dict of {key:inputfunc,…}</p>
<codeclass="sig-name descname">data_in</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">session</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.data_in"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.data_in"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">call_inputfuncs</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">session</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/sessionhandler.html#ServerSessionHandler.call_inputfuncs"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.sessionhandler.ServerSessionHandler.call_inputfuncs"title="Permalink to this definition">¶</a></dt>