<spanid="evennia-server-session"></span><h1>evennia.server.session<aclass="headerlink"href="#module-evennia.server.session"title="Permalink to this headline">¶</a></h1>
<p>This module defines a generic session class. All connection instances
(both on Portal and Server side) should inherit from this class.</p>
<dlclass="py class">
<dtid="evennia.server.session.Session">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.session.</code><codeclass="sig-name descname">Session</code><aclass="reference internal"href="../_modules/evennia/server/session.html#Session"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.session.Session"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">init_session</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">protocol_key</span></em>, <emclass="sig-param"><spanclass="n">address</span></em>, <emclass="sig-param"><spanclass="n">sessionhandler</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/session.html#Session.init_session"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.session.Session.init_session"title="Permalink to this definition">¶</a></dt>
<dd><p>Initialize the Session. This should be called by the protocol when
a new session is established.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>protocol_key</strong> (<em>str</em>) – By default, one of ‘telnet’, ‘telnet/ssl’, ‘ssh’,
‘webclient/websocket’ or ‘webclient/ajax’.</p></li>
<li><p><strong>sessionhandler</strong> (<aclass="reference internal"href="evennia.server.sessionhandler.html#evennia.server.sessionhandler.SessionHandler"title="evennia.server.sessionhandler.SessionHandler"><em>SessionHandler</em></a>) – Reference to the
<codeclass="sig-name descname">get_sync_data</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/session.html#Session.get_sync_data"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.session.Session.get_sync_data"title="Permalink to this definition">¶</a></dt>
<dd><p>Get all data relevant to sync the session.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>syncdata</strong> (<em>dict</em>) – All syncdata values, based on
<codeclass="sig-name descname">load_sync_data</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">sessdata</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/session.html#Session.load_sync_data"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.session.Session.load_sync_data"title="Permalink to this definition">¶</a></dt>
<dd><p>Takes a session dictionary, as created by get_sync_data, and
loads it into the correct properties of the session.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>sessdata</strong> (<em>dict</em>) – Session data dictionary.</p>
</dd>
</dl>
</dd></dl>
<dlclass="py method">
<dtid="evennia.server.session.Session.at_sync">
<codeclass="sig-name descname">at_sync</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/session.html#Session.at_sync"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.session.Session.at_sync"title="Permalink to this definition">¶</a></dt>
<dd><p>Called after a session has been fully synced (including
secondary operations such as setting self.account based
<codeclass="sig-name descname">disconnect</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">reason</span><spanclass="o">=</span><spanclass="default_value">None</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/session.html#Session.disconnect"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.session.Session.disconnect"title="Permalink to this definition">¶</a></dt>
<dd><p>generic hook called from the outside to disconnect this session
should be connected to the protocols actual disconnect mechanism.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>reason</strong> (<em>str</em>) – Eventual text motivating the disconnect.</p>
</dd>
</dl>
</dd></dl>
<dlclass="py method">
<dtid="evennia.server.session.Session.data_out">
<codeclass="sig-name descname">data_out</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/session.html#Session.data_out"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.session.Session.data_out"title="Permalink to this definition">¶</a></dt>
<dd><p>Generic hook for sending data out through the protocol. Server
protocols can use this right away. Portal sessions
should overload this to format/handle the outgoing data as needed.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Keyword Arguments</dt>
<ddclass="field-odd"><p><strong>kwargs</strong> (<em>any</em>) – Other data to the protocol.</p>
</dd>
</dl>
</dd></dl>
<dlclass="py method">
<dtid="evennia.server.session.Session.data_in">
<codeclass="sig-name descname">data_in</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/session.html#Session.data_in"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.session.Session.data_in"title="Permalink to this definition">¶</a></dt>
<dd><p>Hook for protocols to send incoming data to the engine.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Keyword Arguments</dt>
<ddclass="field-odd"><p><strong>kwargs</strong> (<em>any</em>) – Other data from the protocol.</p>