<spanid="evennia-server-portal-portalsessionhandler"></span><h1>evennia.server.portal.portalsessionhandler<aclass="headerlink"href="#module-evennia.server.portal.portalsessionhandler"title="Permalink to this headline">¶</a></h1>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.portalsessionhandler.</code><codeclass="sig-name descname">PortalSessionHandler</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/portal/portalsessionhandler.html#PortalSessionHandler"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler"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/portal/portalsessionhandler.html#PortalSessionHandler.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.__init__"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">at_server_connection</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.at_server_connection"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.at_server_connection"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when the Portal establishes connection with the Server.
At this point, the AMP connection is already established.</p>
<codeclass="sig-name descname">generate_sessid</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.generate_sessid"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.generate_sessid"title="Permalink to this definition">¶</a></dt>
<dd><p>Simply generates a sessid that’s guaranteed to be unique for this Portal run.</p>
<codeclass="sig-name descname">connect</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">session</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.connect"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.connect"title="Permalink to this definition">¶</a></dt>
<dd><p>Called by protocol at first connect. This adds a not-yet
authenticated session using an ever-increasing counter for
sessid.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>session</strong> (<em>PortalSession</em>) – The Session connecting.</p>
</dd>
</dl>
<pclass="rubric">Notes</p>
<p>We implement a throttling mechanism here to limit the speed at
which new connections are accepted - this is both a stop
against DoS attacks as well as helps using the Dummyrunner
tester with a large number of connector dummies.</p>
<codeclass="sig-name descname">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/portal/portalsessionhandler.html#PortalSessionHandler.sync"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.sync"title="Permalink to this definition">¶</a></dt>
<dd><p>Called by the protocol of an already connected session. This
can be used to sync the session info in a delayed manner, such
as when negotiation and handshakes are delayed.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>session</strong> (<em>PortalSession</em>) – Session to sync.</p>
<codeclass="sig-name descname">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/portal/portalsessionhandler.html#PortalSessionHandler.disconnect"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.disconnect"title="Permalink to this definition">¶</a></dt>
<dd><p>Called from portal when the connection is closed from the
portal side.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>session</strong> (<em>PortalSession</em>) – Session to disconnect.</p></li>
<li><p><strong>delete</strong> (<em>bool</em><em>, </em><em>optional</em>) – Delete the session from
<codeclass="sig-name descname">disconnect_all</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.disconnect_all"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.disconnect_all"title="Permalink to this definition">¶</a></dt>
<dd><p>Disconnect all sessions, informing the Server.</p>
<codeclass="sig-name descname">server_connect</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">protocol_path</span><spanclass="o">=</span><spanclass="default_value">''</span></em>, <emclass="sig-param"><spanclass="n">config</span><spanclass="o">=</span><spanclass="default_value">{}</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.server_connect"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.server_connect"title="Permalink to this definition">¶</a></dt>
<dd><p>Called by server to force the initialization of a new protocol
instance. Server wants this instance to get a unique sessid and to be
connected back as normal. This is used to initiate irc/rss etc
connections.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>protocol_path</strong> (<em>str</em>) – Full python path to the class factory
<codeclass="sig-name descname">server_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><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.server_disconnect"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.server_disconnect"title="Permalink to this definition">¶</a></dt>
<dd><p>Called by server to force a disconnect by sessid.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>session</strong> (<em>portalsession</em>) – Session to disconnect.</p></li>
<li><p><strong>reason</strong> (<em>str</em><em>, </em><em>optional</em>) – Motivation for disconnect.</p></li>
<codeclass="sig-name descname">server_disconnect_all</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">reason</span><spanclass="o">=</span><spanclass="default_value">''</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.server_disconnect_all"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.server_disconnect_all"title="Permalink to this definition">¶</a></dt>
<dd><p>Called by server when forcing a clean disconnect for everyone.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>reason</strong> (<em>str</em><em>, </em><em>optional</em>) – Motivation for disconnect.</p>
<codeclass="sig-name descname">server_logged_in</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">session</span></em>, <emclass="sig-param"><spanclass="n">data</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.server_logged_in"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.server_logged_in"title="Permalink to this definition">¶</a></dt>
<dd><p>The server tells us that the session has been authenticated.
<codeclass="sig-name descname">server_session_sync</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">serversessions</span></em>, <emclass="sig-param"><spanclass="n">clean</span><spanclass="o">=</span><spanclass="default_value">True</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.server_session_sync"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.server_session_sync"title="Permalink to this definition">¶</a></dt>
<dd><p>Server wants to save data to the portal, maybe because it’s
about to shut down. We don’t overwrite any sessions here, just
update them in-place.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>serversessions</strong> (<em>dict</em>) –<p>This is a dictionary</p>
<codeclass="sig-name descname">count_loggedin</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/portal/portalsessionhandler.html#PortalSessionHandler.count_loggedin"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.count_loggedin"title="Permalink to this definition">¶</a></dt>
<dd><p>Count loggedin connections, alternatively count all connections.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>include_unloggedin</strong> (<em>bool</em>) – Also count sessions that have</p></li>
<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/portal/portalsessionhandler.html#PortalSessionHandler.sessions_from_csessid"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.sessions_from_csessid"title="Permalink to this definition">¶</a></dt>
<dd><p>Given a session id, retrieve the session (this is primarily
<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/portal/portalsessionhandler.html#PortalSessionHandler.announce_all"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.announce_all"title="Permalink to this definition">¶</a></dt>
<dd><p>Send message to all connected sessions.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>message</strong> (<em>str</em>) – Message to relay.</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/portal/portalsessionhandler.html#PortalSessionHandler.data_in"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.data_in"title="Permalink to this definition">¶</a></dt>
<dd><p>Called by portal sessions for relaying data coming
<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/portal/portalsessionhandler.html#PortalSessionHandler.data_out"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.data_out"title="Permalink to this definition">¶</a></dt>
<dd><p>Called by server for having the portal relay messages and data