evennia/docs/latest/api/evennia.server.portal.portalsessionhandler.html
Evennia docbuilder action 243d596662 Updated HTML docs.
2025-08-15 18:14:21 +00:00

456 lines
No EOL
34 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en" data-content_root="../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>evennia.server.portal.portalsessionhandler &#8212; Evennia latest documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d75fae25" />
<link rel="stylesheet" type="text/css" href="../_static/nature.css?v=279e0f84" />
<link rel="stylesheet" type="text/css" href="../_static/custom.css?v=e4a91a55" />
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/doctools.js?v=9bcbadda"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="evennia.server.portal.rss" href="evennia.server.portal.rss.html" />
<link rel="prev" title="evennia.server.portal.portal" href="evennia.server.portal.portal.html" />
</head><body>
<div class="related" role="navigation" aria-label="Related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="evennia.server.portal.rss.html" title="evennia.server.portal.rss"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="evennia.server.portal.portal.html" title="evennia.server.portal.portal"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-4"><a href="evennia.server.html" >evennia.server</a> &#187;</li>
<li class="nav-item nav-item-5"><a href="evennia.server.portal.html" accesskey="U">evennia.server.portal</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.server.portal.portalsessionhandler</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="module-evennia.server.portal.portalsessionhandler">
<span id="evennia-server-portal-portalsessionhandler"></span><h1>evennia.server.portal.portalsessionhandler<a class="headerlink" href="#module-evennia.server.portal.portalsessionhandler" title="Link to this heading"></a></h1>
<p>Sessionhandler for portal sessions.</p>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.server.portal.portalsessionhandler.PortalSessionHandler">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.server.portal.portalsessionhandler.</span></span><span class="sig-name descname"><span class="pre">PortalSessionHandler</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.server.sessionhandler.html#evennia.server.sessionhandler.SessionHandler" title="evennia.server.sessionhandler.SessionHandler"><code class="xref py py-class docutils literal notranslate"><span class="pre">SessionHandler</span></code></a></p>
<p>This object holds the sessions connected to the portal at any time.
It is synced with the servers equivalent SessionHandler over the AMP
connection.</p>
<p>Sessions register with the handler using the connect() method. This
will assign a new unique sessionid to the session and send that sessid
to the server using the AMP connection.</p>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.portalsessionhandler.PortalSessionHandler.__init__">
<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.__init__" title="Link to this definition"></a></dt>
<dd><p>Init the handler</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.portalsessionhandler.PortalSessionHandler.at_server_connection">
<span class="sig-name descname"><span class="pre">at_server_connection</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.at_server_connection"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.at_server_connection" title="Link 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>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.portalsessionhandler.PortalSessionHandler.generate_sessid">
<span class="sig-name descname"><span class="pre">generate_sessid</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.generate_sessid"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.generate_sessid" title="Link to this definition"></a></dt>
<dd><p>Simply generates a sessid thats guaranteed to be unique for this Portal run.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>sessid</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.portalsessionhandler.PortalSessionHandler.connect">
<span class="sig-name descname"><span class="pre">connect</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">session</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.connect"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.connect" title="Link 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>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>session</strong> (<em>PortalSession</em>) The Session connecting.</p>
</dd>
</dl>
<p class="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>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.portalsessionhandler.PortalSessionHandler.sync">
<span class="sig-name descname"><span class="pre">sync</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">session</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.sync"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.sync" title="Link 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>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>session</strong> (<em>PortalSession</em>) Session to sync.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.portalsessionhandler.PortalSessionHandler.disconnect">
<span class="sig-name descname"><span class="pre">disconnect</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">session</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.disconnect"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.disconnect" title="Link to this definition"></a></dt>
<dd><p>Called from portal when the connection is closed from the
portal side.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="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
the handler. Only time to not do this is when
this is called from a loop, such as from
self.disconnect_all().</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.portalsessionhandler.PortalSessionHandler.disconnect_all">
<span class="sig-name descname"><span class="pre">disconnect_all</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.disconnect_all"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.disconnect_all" title="Link to this definition"></a></dt>
<dd><p>Disconnect all sessions, informing the Server.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.portalsessionhandler.PortalSessionHandler.server_connect">
<span class="sig-name descname"><span class="pre">server_connect</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">protocol_path</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">config</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">{}</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.server_connect"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.server_connect" title="Link 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>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>protocol_path</strong> (<em>str</em>) Full python path to the class factory
for the protocol used, eg
evennia.server.portal.irc.IRCClientFactory</p></li>
<li><p><strong>config</strong> (<em>dict</em>) Dictionary of configuration options, fed as
<strong>**kwarg</strong> to protocol class <strong>__init__</strong> method.</p></li>
</ul>
</dd>
<dt class="field-even">Raises<span class="colon">:</span></dt>
<dd class="field-even"><p><strong>RuntimeError</strong> If The correct factory class is not found.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>The called protocol class must have a method start()
that calls the portalsession.connect() as a normal protocol.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.portalsessionhandler.PortalSessionHandler.server_disconnect">
<span class="sig-name descname"><span class="pre">server_disconnect</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">session</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reason</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.server_disconnect"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.server_disconnect" title="Link to this definition"></a></dt>
<dd><p>Called by server to force a disconnect by sessid.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="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>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.portalsessionhandler.PortalSessionHandler.server_disconnect_all">
<span class="sig-name descname"><span class="pre">server_disconnect_all</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">reason</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.server_disconnect_all"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.server_disconnect_all" title="Link to this definition"></a></dt>
<dd><p>Called by server when forcing a clean disconnect for everyone.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>reason</strong> (<em>str</em><em>, </em><em>optional</em>) Motivation for disconnect.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.portalsessionhandler.PortalSessionHandler.server_logged_in">
<span class="sig-name descname"><span class="pre">server_logged_in</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">session</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">data</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.server_logged_in"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.server_logged_in" title="Link to this definition"></a></dt>
<dd><p>The server tells us that the session has been authenticated.
Update it. Called by the Server.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>session</strong> (<a class="reference internal" href="evennia.server.session.html#evennia.server.session.Session" title="evennia.server.session.Session"><em>Session</em></a>) Session logging in.</p></li>
<li><p><strong>data</strong> (<em>dict</em>) The session sync data.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.portalsessionhandler.PortalSessionHandler.server_session_sync">
<span class="sig-name descname"><span class="pre">server_session_sync</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">serversessions</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">clean</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.server_session_sync"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.server_session_sync" title="Link to this definition"></a></dt>
<dd><p>Server wants to save data to the portal, maybe because its
about to shut down. We dont overwrite any sessions here, just
update them in-place.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>serversessions</strong> (<em>dict</em>) <p>This is a dictionary</p>
<p><strong>{sessid:{property:value},…}</strong> describing
the properties to sync on all sessions.</p>
</p></li>
<li><p><strong>clean</strong> (<em>bool</em>) If True, remove any Portal sessions that are
not included in serversessions.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.portalsessionhandler.PortalSessionHandler.count_loggedin">
<span class="sig-name descname"><span class="pre">count_loggedin</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">include_unloggedin</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.count_loggedin"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.count_loggedin" title="Link to this definition"></a></dt>
<dd><p>Count loggedin connections, alternatively count all connections.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>include_unloggedin</strong> (<em>bool</em>) Also count sessions that have</p></li>
<li><p><strong>authenticated.</strong> (<em>not yet</em>)</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>count (int)</em> Number of sessions.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.portalsessionhandler.PortalSessionHandler.sessions_from_csessid">
<span class="sig-name descname"><span class="pre">sessions_from_csessid</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">csessid</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.sessions_from_csessid"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.sessions_from_csessid" title="Link to this definition"></a></dt>
<dd><p>Given a session id, retrieve the session (this is primarily
intended to be called by web clients)</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>csessid</strong> (<em>int</em>) Session id.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>session (list)</em> The matching session, if found.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.portalsessionhandler.PortalSessionHandler.announce_all">
<span class="sig-name descname"><span class="pre">announce_all</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">message</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.announce_all"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.announce_all" title="Link to this definition"></a></dt>
<dd><p>Send message to all connected sessions.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>message</strong> (<em>str</em>) Message to relay.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>This will create an on-the fly text-type
send command.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.portalsessionhandler.PortalSessionHandler.data_in">
<span class="sig-name descname"><span class="pre">data_in</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">session</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.data_in"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.data_in" title="Link to this definition"></a></dt>
<dd><p>Called by portal sessions for relaying data coming
in from the protocol to the server.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>session</strong> (<em>PortalSession</em>) Session receiving data.</p>
</dd>
<dt class="field-even">Keyword Arguments<span class="colon">:</span></dt>
<dd class="field-even"><p><strong>kwargs</strong> (<em>any</em>) Other data from protocol.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>Data is serialized before passed on.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.portalsessionhandler.PortalSessionHandler.data_out">
<span class="sig-name descname"><span class="pre">data_out</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">session</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.data_out"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.data_out" title="Link to this definition"></a></dt>
<dd><p>Called by server for having the portal relay messages and data
to the correct session protocol.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>session</strong> (<a class="reference internal" href="evennia.server.session.html#evennia.server.session.Session" title="evennia.server.session.Session"><em>Session</em></a>) Session sending data.</p>
</dd>
<dt class="field-even">Keyword Arguments<span class="colon">:</span></dt>
<dd class="field-even"><p><strong>kwargs</strong> (<em>any</em>) Each key is a command instruction to the
protocol on the form key = [[args],{kwargs}]. This will
call a method send_&lt;key&gt; on the protocol. If no such
method exits, it sends the data to a method send_default.</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
</section>
<div class="clearer"></div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/evennia_logo.png" alt="Logo of Evennia"/>
</a></p>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
<h3><a href="../index.html">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">evennia.server.portal.portalsessionhandler</a><ul>
<li><a class="reference internal" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler"><code class="docutils literal notranslate"><span class="pre">PortalSessionHandler</span></code></a><ul>
<li><a class="reference internal" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.__init__"><code class="docutils literal notranslate"><span class="pre">PortalSessionHandler.__init__()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.at_server_connection"><code class="docutils literal notranslate"><span class="pre">PortalSessionHandler.at_server_connection()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.generate_sessid"><code class="docutils literal notranslate"><span class="pre">PortalSessionHandler.generate_sessid()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.connect"><code class="docutils literal notranslate"><span class="pre">PortalSessionHandler.connect()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.sync"><code class="docutils literal notranslate"><span class="pre">PortalSessionHandler.sync()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.disconnect"><code class="docutils literal notranslate"><span class="pre">PortalSessionHandler.disconnect()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.disconnect_all"><code class="docutils literal notranslate"><span class="pre">PortalSessionHandler.disconnect_all()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.server_connect"><code class="docutils literal notranslate"><span class="pre">PortalSessionHandler.server_connect()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.server_disconnect"><code class="docutils literal notranslate"><span class="pre">PortalSessionHandler.server_disconnect()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.server_disconnect_all"><code class="docutils literal notranslate"><span class="pre">PortalSessionHandler.server_disconnect_all()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.server_logged_in"><code class="docutils literal notranslate"><span class="pre">PortalSessionHandler.server_logged_in()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.server_session_sync"><code class="docutils literal notranslate"><span class="pre">PortalSessionHandler.server_session_sync()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.count_loggedin"><code class="docutils literal notranslate"><span class="pre">PortalSessionHandler.count_loggedin()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.sessions_from_csessid"><code class="docutils literal notranslate"><span class="pre">PortalSessionHandler.sessions_from_csessid()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.announce_all"><code class="docutils literal notranslate"><span class="pre">PortalSessionHandler.announce_all()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.data_in"><code class="docutils literal notranslate"><span class="pre">PortalSessionHandler.data_in()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.data_out"><code class="docutils literal notranslate"><span class="pre">PortalSessionHandler.data_out()</span></code></a></li>
</ul>
</li>
</ul>
</li>
</ul>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="evennia.server.portal.portal.html"
title="previous chapter">evennia.server.portal.portal</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="evennia.server.portal.rss.html"
title="next chapter">evennia.server.portal.rss</a></p>
</div>
<div role="note" aria-label="source link">
<!--h3>This Page</h3-->
<ul class="this-page-menu">
<li><a href="../_sources/api/evennia.server.portal.portalsessionhandler.md.txt"
rel="nofollow">Show Page Source</a></li>
</ul>
</div><h3>Links</h3>
<ul>
<li><a href="https://www.evennia.com/docs/latest/index.html">Documentation Top</a> </li>
<li><a href="https://www.evennia.com">Evennia Home</a> </li>
<li><a href="https://github.com/evennia/evennia">Github</a> </li>
<li><a href="http://games.evennia.com">Game Index</a> </li>
<li>
<a href="https://discord.gg/AJJpcRUhtF">Discord</a> -
<a href="https://github.com/evennia/evennia/discussions">Discussions</a> -
<a href="https://evennia.blogspot.com/">Blog</a>
</li>
</ul>
<h3>Doc Versions</h3>
<ul>
<li>
<a href="https://www.evennia.com/docs/latest/index.html">latest (main branch)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/5.x/index.html">v5.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/4.x/index.html">v4.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/3.x/index.html">v3.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/2.x/index.html">v2.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/1.x/index.html">v1.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/0.x/index.html">v0.9.5 branch (outdated)</a>
</li>
</ul>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="Related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="evennia.server.portal.rss.html" title="evennia.server.portal.rss"
>next</a> |</li>
<li class="right" >
<a href="evennia.server.portal.portal.html" title="evennia.server.portal.portal"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-4"><a href="evennia.server.html" >evennia.server</a> &#187;</li>
<li class="nav-item nav-item-5"><a href="evennia.server.portal.html" >evennia.server.portal</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.server.portal.portalsessionhandler</a></li>
</ul>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2024, The Evennia developer community.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3.
</div>
</body>
</html>