<spanid="evennia-server-portal-webclient"></span><h1>evennia.server.portal.webclient<aclass="headerlink"href="#module-evennia.server.portal.webclient"title="Permalink to this headline">¶</a></h1>
<p>Webclient based on websockets.</p>
<p>This implements a webclient with WebSockets (<aclass="reference external"href="http://en.wikipedia.org/wiki/WebSocket">http://en.wikipedia.org/wiki/WebSocket</a>)
by use of the autobahn-python package’s implementation (<aclass="reference external"href="https://github.com/crossbario/autobahn-python">https://github.com/crossbario/autobahn-python</a>).
It is used together with evennia/web/media/javascript/evennia_websocket_webclient.js.</p>
<p>All data coming into the webclient is in the form of valid JSON on the form</p>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.webclient.</code><codeclass="sig-name descname">WebSocketClient</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/webclient.html#WebSocketClient"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient.WebSocketClient"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">nonce</code><emclass="property"> = 0</em><aclass="headerlink"href="#evennia.server.portal.webclient.WebSocketClient.nonce"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/webclient.html#WebSocketClient.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient.WebSocketClient.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Initialize self. See help(type(self)) for accurate signature.</p>
<codeclass="sig-name descname">get_client_session</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient.html#WebSocketClient.get_client_session"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient.WebSocketClient.get_client_session"title="Permalink to this definition">¶</a></dt>
<dd><p>Get the Client browser session (used for auto-login based on browser session)</p>
<codeclass="sig-name descname">onOpen</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient.html#WebSocketClient.onOpen"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient.WebSocketClient.onOpen"title="Permalink to this definition">¶</a></dt>
<dd><p>This is called when the WebSocket connection is fully established.</p>
<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/portal/webclient.html#WebSocketClient.disconnect"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient.WebSocketClient.disconnect"title="Permalink to this definition">¶</a></dt>
<dd><p>Generic hook for the engine to call in order to
disconnect this protocol.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>reason</strong> (<em>str</em><em> or </em><em>None</em>) – Motivation for the disconnection.</p>
<codeclass="sig-name descname">onClose</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">wasClean</span></em>, <emclass="sig-param"><spanclass="n">code</span><spanclass="o">=</span><spanclass="default_value">None</span></em>, <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/portal/webclient.html#WebSocketClient.onClose"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient.WebSocketClient.onClose"title="Permalink to this definition">¶</a></dt>
<dd><p>This is executed when the connection is lost for whatever
reason. it can also be called directly, from the disconnect
method.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>wasClean</strong> (<em>bool</em>) –<strong>**True**</strong> if the WebSocket was closed cleanly.</p></li>
<li><p><strong>code</strong> (<em>int</em><em> or </em><em>None</em>) – Close status as sent by the WebSocket peer.</p></li>
<li><p><strong>reason</strong> (<em>str</em><em> or </em><em>None</em>) – Close reason as sent by the WebSocket peer.</p></li>
<codeclass="sig-name descname">onMessage</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">payload</span></em>, <emclass="sig-param"><spanclass="n">isBinary</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient.html#WebSocketClient.onMessage"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient.WebSocketClient.onMessage"title="Permalink to this definition">¶</a></dt>
<dd><p>Callback fired when a complete WebSocket message was received.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>payload</strong> (<em>bytes</em>) – The WebSocket message received.</p></li>
<li><p><strong>isBinary</strong> (<em>bool</em>) – Flag indicating whether payload is binary or
<codeclass="sig-name descname">sendLine</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">line</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient.html#WebSocketClient.sendLine"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient.WebSocketClient.sendLine"title="Permalink to this definition">¶</a></dt>
<dd><p>Send data to client.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>line</strong> (<em>str</em>) – Text to send.</p>
<codeclass="sig-name descname">at_login</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient.html#WebSocketClient.at_login"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient.WebSocketClient.at_login"title="Permalink to this definition">¶</a></dt>
<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/portal/webclient.html#WebSocketClient.data_in"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient.WebSocketClient.data_in"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">send_text</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/webclient.html#WebSocketClient.send_text"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient.WebSocketClient.send_text"title="Permalink to this definition">¶</a></dt>
<dd><p>Send text data. This will pre-process the text for
color-replacement, conversion to html etc.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>text</strong> (<em>str</em>) – Text to send.</p>
</dd>
<dtclass="field-even">Keyword Arguments</dt>
<ddclass="field-even"><p><strong>options</strong> (<em>dict</em>) – Options-dict with the following keys understood:
- raw (bool): No parsing at all (leave ansi-to-html markers unparsed).
- nocolor (bool): Clean out all color.
- screenreader (bool): Use Screenreader mode.
- send_prompt (bool): Send a prompt with parsed html</p>
<codeclass="sig-name descname">send_prompt</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/webclient.html#WebSocketClient.send_prompt"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient.WebSocketClient.send_prompt"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">send_default</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">cmdname</span></em>, <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/webclient.html#WebSocketClient.send_default"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient.WebSocketClient.send_default"title="Permalink to this definition">¶</a></dt>
<dd><p>Data Evennia -> User.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>cmdname</strong> (<em>str</em>) – The first argument will always be the oob cmd name.</p></li>
<li><p><strong>*args</strong> (<em>any</em>) – Remaining args will be arguments for <strong>cmd</strong>.</p></li>
</ul>
</dd>
<dtclass="field-even">Keyword Arguments</dt>
<ddclass="field-even"><p><strong>options</strong> (<em>dict</em>) – These are ignored for oob commands. Use command
arguments (which can hold dicts) to send instructions to the