evennia/docs/2.x/api/evennia.server.amp_client.html
2023-12-20 18:20:52 +01:00

320 lines
No EOL
20 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>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<title>evennia.server.amp_client &#8212; Evennia 2.x documentation</title>
<link rel="stylesheet" href="../_static/nature.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script>
<script src="../_static/language_data.js"></script>
<link rel="shortcut 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.connection_wizard" href="evennia.server.connection_wizard.html" />
<link rel="prev" title="evennia.server" href="evennia.server.html" />
</head><body>
<div class="related" role="navigation" aria-label="related navigation">
<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.connection_wizard.html" title="evennia.server.connection_wizard"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="evennia.server.html" title="evennia.server"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 2.x</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" accesskey="U">evennia.server</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.server.amp_client</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/evennia_logo.png" alt="Logo"/>
</a></p>
<div 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" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
<h4>Previous topic</h4>
<p class="topless"><a href="evennia.server.html"
title="previous chapter">evennia.server</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="evennia.server.connection_wizard.html"
title="next chapter">evennia.server.connection_wizard</a></p>
<div role="note" aria-label="source link">
<!--h3>This Page</h3-->
<ul class="this-page-menu">
<li><a href="../_sources/api/evennia.server.amp_client.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>
</div>
</div>
<div class="bodywrapper">
<div class="body" role="main">
<section id="module-evennia.server.amp_client">
<span id="evennia-server-amp-client"></span><h1>evennia.server.amp_client<a class="headerlink" href="#module-evennia.server.amp_client" title="Permalink to this headline"></a></h1>
<p>The Evennia Server service acts as an AMP-client when talking to the
Portal. This module sets up the Client-side communication.</p>
<dl class="py class">
<dt id="evennia.server.amp_client.AMPClientFactory">
<em class="property">class </em><code class="sig-prename descclassname">evennia.server.amp_client.</code><code class="sig-name descname">AMPClientFactory</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">server</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/amp_client.html#AMPClientFactory"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.amp_client.AMPClientFactory" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">twisted.internet.protocol.ReconnectingClientFactory</span></code></p>
<p>This factory creates an instance of an AMP client connection. This handles communication from
the be the Evennia Server service to the Portal. The client will try to auto-reconnect on a
connection error.</p>
<dl class="py attribute">
<dt id="evennia.server.amp_client.AMPClientFactory.initialDelay">
<code class="sig-name descname">initialDelay</code><em class="property"> = 1</em><a class="headerlink" href="#evennia.server.amp_client.AMPClientFactory.initialDelay" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.server.amp_client.AMPClientFactory.factor">
<code class="sig-name descname">factor</code><em class="property"> = 1.5</em><a class="headerlink" href="#evennia.server.amp_client.AMPClientFactory.factor" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.server.amp_client.AMPClientFactory.noisy">
<code class="sig-name descname">noisy</code><em class="property"> = False</em><a class="headerlink" href="#evennia.server.amp_client.AMPClientFactory.noisy" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.server.amp_client.AMPClientFactory.__init__">
<code class="sig-name descname">__init__</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">server</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/amp_client.html#AMPClientFactory.__init__"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.amp_client.AMPClientFactory.__init__" title="Permalink to this definition"></a></dt>
<dd><p>Initializes the client factory.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>server</strong> (<em>server</em>) server instance.</p>
</dd>
</dl>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.server.amp_client.AMPClientFactory.maxDelay">
<code class="sig-name descname">maxDelay</code><em class="property"> = 1</em><a class="headerlink" href="#evennia.server.amp_client.AMPClientFactory.maxDelay" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.server.amp_client.AMPClientFactory.startedConnecting">
<code class="sig-name descname">startedConnecting</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">connector</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/amp_client.html#AMPClientFactory.startedConnecting"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.amp_client.AMPClientFactory.startedConnecting" title="Permalink to this definition"></a></dt>
<dd><p>Called when starting to try to connect to the Portal AMP server.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>connector</strong> (<em>Connector</em>) Twisted Connector instance representing
this connection.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.amp_client.AMPClientFactory.buildProtocol">
<code class="sig-name descname">buildProtocol</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">addr</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/amp_client.html#AMPClientFactory.buildProtocol"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.amp_client.AMPClientFactory.buildProtocol" title="Permalink to this definition"></a></dt>
<dd><p>Creates an AMPProtocol instance when connecting to the AMP server.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>addr</strong> (<em>str</em>) Connection address. Not used.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.amp_client.AMPClientFactory.clientConnectionLost">
<code class="sig-name descname">clientConnectionLost</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">connector</span></em>, <em class="sig-param"><span class="n">reason</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/amp_client.html#AMPClientFactory.clientConnectionLost"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.amp_client.AMPClientFactory.clientConnectionLost" title="Permalink to this definition"></a></dt>
<dd><p>Called when the AMP connection to the MUD server is lost.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>connector</strong> (<em>Connector</em>) Twisted Connector instance representing
this connection.</p></li>
<li><p><strong>reason</strong> (<em>str</em>) Eventual text describing why connection was lost.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.amp_client.AMPClientFactory.clientConnectionFailed">
<code class="sig-name descname">clientConnectionFailed</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">connector</span></em>, <em class="sig-param"><span class="n">reason</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/amp_client.html#AMPClientFactory.clientConnectionFailed"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.amp_client.AMPClientFactory.clientConnectionFailed" title="Permalink to this definition"></a></dt>
<dd><p>Called when an AMP connection attempt to the MUD server fails.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>connector</strong> (<em>Connector</em>) Twisted Connector instance representing
this connection.</p></li>
<li><p><strong>reason</strong> (<em>str</em>) Eventual text describing why connection failed.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.server.amp_client.AMPServerClientProtocol">
<em class="property">class </em><code class="sig-prename descclassname">evennia.server.amp_client.</code><code class="sig-name descname">AMPServerClientProtocol</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/amp_client.html#AMPServerClientProtocol"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.amp_client.AMPServerClientProtocol" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.server.portal.amp.html#evennia.server.portal.amp.AMPMultiConnectionProtocol" title="evennia.server.portal.amp.AMPMultiConnectionProtocol"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.server.portal.amp.AMPMultiConnectionProtocol</span></code></a></p>
<p>This protocol describes the Server service (acting as an AMP-client)s communication with the
Portal (which acts as the AMP-server)</p>
<dl class="py method">
<dt id="evennia.server.amp_client.AMPServerClientProtocol.connectionMade">
<code class="sig-name descname">connectionMade</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/amp_client.html#AMPServerClientProtocol.connectionMade"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.amp_client.AMPServerClientProtocol.connectionMade" title="Permalink to this definition"></a></dt>
<dd><p>Called when a new connection is established.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.amp_client.AMPServerClientProtocol.data_to_portal">
<code class="sig-name descname">data_to_portal</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">command</span></em>, <em class="sig-param"><span class="n">sessid</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/amp_client.html#AMPServerClientProtocol.data_to_portal"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.amp_client.AMPServerClientProtocol.data_to_portal" title="Permalink to this definition"></a></dt>
<dd><p>Send data across the wire to the Portal</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>command</strong> (<em>AMP Command</em>) A protocol send command.</p></li>
<li><p><strong>sessid</strong> (<em>int</em>) A unique Session id.</p></li>
<li><p><strong>kwargs</strong> (<em>any</em>) Any data to pickle into the command.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>deferred (deferred or None)</em> A deferred with an errback.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>Data will be sent across the wire pickled as a tuple
(sessid, kwargs).</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.amp_client.AMPServerClientProtocol.send_MsgServer2Portal">
<code class="sig-name descname">send_MsgServer2Portal</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">session</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/amp_client.html#AMPServerClientProtocol.send_MsgServer2Portal"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.amp_client.AMPServerClientProtocol.send_MsgServer2Portal" title="Permalink to this definition"></a></dt>
<dd><dl class="simple">
<dt>Access method - executed on the Server for sending data</dt><dd><p>to Portal.</p>
</dd>
</dl>
<dl class="field-list simple">
<dt class="field-odd">Parameters</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>) Unique Session.</p></li>
<li><p><strong>kwargs</strong> (<em>any</em><em>, </em><em>optiona</em>) Extra data.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.amp_client.AMPServerClientProtocol.send_AdminServer2Portal">
<code class="sig-name descname">send_AdminServer2Portal</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">session</span></em>, <em class="sig-param"><span class="n">operation</span><span class="o">=</span><span class="default_value">''</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/amp_client.html#AMPServerClientProtocol.send_AdminServer2Portal"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.amp_client.AMPServerClientProtocol.send_AdminServer2Portal" title="Permalink to this definition"></a></dt>
<dd><p>Administrative access method called by the Server to send an
instruction to the Portal.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</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.</p></li>
<li><p><strong>operation</strong> (<em>char</em><em>, </em><em>optional</em>) Identifier for the server
operation, as defined by the global variables in
<strong>evennia/server/amp.py</strong>.</p></li>
<li><p><strong>kwargs</strong> (<em>dict</em><em>, </em><em>optional</em>) Data going into the adminstrative.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.amp_client.AMPServerClientProtocol.server_receive_status">
<code class="sig-name descname">server_receive_status</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">question</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/amp_client.html#AMPServerClientProtocol.server_receive_status"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.amp_client.AMPServerClientProtocol.server_receive_status" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.server.amp_client.AMPServerClientProtocol.server_receive_msgportal2server">
<code class="sig-name descname">server_receive_msgportal2server</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.server.amp_client.AMPServerClientProtocol.server_receive_msgportal2server" title="Permalink to this definition"></a></dt>
<dd><p>Helper decorator</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.amp_client.AMPServerClientProtocol.server_receive_adminportal2server">
<code class="sig-name descname">server_receive_adminportal2server</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.server.amp_client.AMPServerClientProtocol.server_receive_adminportal2server" title="Permalink to this definition"></a></dt>
<dd><p>Helper decorator</p>
</dd></dl>
</dd></dl>
</section>
</div>
</div>
</div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<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.connection_wizard.html" title="evennia.server.connection_wizard"
>next</a> |</li>
<li class="right" >
<a href="evennia.server.html" title="evennia.server"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 2.x</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-this"><a href="">evennia.server.amp_client</a></li>
</ul>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2023, The Evennia developer community.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
</div>
</body>
</html>