<spanid="evennia-server-portal-grapevine"></span><h1>evennia.server.portal.grapevine<aclass="headerlink"href="#module-evennia.server.portal.grapevine"title="Permalink to this headline">¶</a></h1>
<p>Grapevine network connection</p>
<p>This is an implementation of the Grapevine Websocket protocol v 1.0.0 as
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.grapevine.</code><codeclass="sig-name descname">RestartingWebsocketServerFactory</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">sessionhandler</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/grapevine.html#RestartingWebsocketServerFactory"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.RestartingWebsocketServerFactory"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">initialDelay</code><emclass="property"> = 1</em><aclass="headerlink"href="#evennia.server.portal.grapevine.RestartingWebsocketServerFactory.initialDelay"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">factor</code><emclass="property"> = 1.5</em><aclass="headerlink"href="#evennia.server.portal.grapevine.RestartingWebsocketServerFactory.factor"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">maxDelay</code><emclass="property"> = 60</em><aclass="headerlink"href="#evennia.server.portal.grapevine.RestartingWebsocketServerFactory.maxDelay"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">sessionhandler</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/grapevine.html#RestartingWebsocketServerFactory.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.RestartingWebsocketServerFactory.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>In addition to all arguments to the constructor of
<codeclass="sig-name descname">buildProtocol</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">addr</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/grapevine.html#RestartingWebsocketServerFactory.buildProtocol"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.RestartingWebsocketServerFactory.buildProtocol"title="Permalink to this definition">¶</a></dt>
<dd><p>Build new instance of protocol</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>addr</strong> (<em>str</em>) – Not used, using factory/settings data</p>
<codeclass="sig-name descname">startedConnecting</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">connector</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/grapevine.html#RestartingWebsocketServerFactory.startedConnecting"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.RestartingWebsocketServerFactory.startedConnecting"title="Permalink to this definition">¶</a></dt>
<dd><p>Tracks reconnections for debugging.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>connector</strong> (<em>Connector</em>) – Represents the connection.</p>
<codeclass="sig-name descname">clientConnectionFailed</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">connector</span></em>, <emclass="sig-param"><spanclass="n">reason</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/grapevine.html#RestartingWebsocketServerFactory.clientConnectionFailed"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.RestartingWebsocketServerFactory.clientConnectionFailed"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when Client failed to connect.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>connector</strong> (<em>Connection</em>) – Represents the connection.</p></li>
<li><p><strong>reason</strong> (<em>str</em>) – The reason for the failure.</p></li>
<codeclass="sig-name descname">clientConnectionLost</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">connector</span></em>, <emclass="sig-param"><spanclass="n">reason</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/grapevine.html#RestartingWebsocketServerFactory.clientConnectionLost"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.RestartingWebsocketServerFactory.clientConnectionLost"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when Client loses connection.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>connector</strong> (<em>Connection</em>) – Represents the connection.</p></li>
<li><p><strong>reason</strong> (<em>str</em>) – The reason for the failure.</p></li>
<codeclass="sig-name descname">reconnect</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/grapevine.html#RestartingWebsocketServerFactory.reconnect"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.RestartingWebsocketServerFactory.reconnect"title="Permalink to this definition">¶</a></dt>
<dd><p>Force a reconnection of the bot protocol. This requires
de-registering the session and then reattaching a new one,
otherwise you end up with an ever growing number of bot
<codeclass="sig-name descname">start</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/grapevine.html#RestartingWebsocketServerFactory.start"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.RestartingWebsocketServerFactory.start"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.grapevine.</code><codeclass="sig-name descname">GrapevineClient</code><aclass="reference internal"href="../_modules/evennia/server/portal/grapevine.html#GrapevineClient"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.GrapevineClient"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/grapevine.html#GrapevineClient.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.GrapevineClient.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Initialize self. See help(type(self)) for accurate signature.</p>
<codeclass="sig-name descname">at_login</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/grapevine.html#GrapevineClient.at_login"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.GrapevineClient.at_login"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">onOpen</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/grapevine.html#GrapevineClient.onOpen"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.GrapevineClient.onOpen"title="Permalink to this definition">¶</a></dt>
<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/grapevine.html#GrapevineClient.onMessage"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.GrapevineClient.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">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/grapevine.html#GrapevineClient.onClose"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.GrapevineClient.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">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/grapevine.html#GrapevineClient.disconnect"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.GrapevineClient.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">send_authenticate</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/grapevine.html#GrapevineClient.send_authenticate"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.GrapevineClient.send_authenticate"title="Permalink to this definition">¶</a></dt>
<dd><p>Send grapevine authentication. This should be send immediately upon connection.</p>
<codeclass="sig-name descname">send_heartbeat</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/grapevine.html#GrapevineClient.send_heartbeat"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.GrapevineClient.send_heartbeat"title="Permalink to this definition">¶</a></dt>
<dd><p>Send heartbeat to remote grapevine server.</p>
<codeclass="sig-name descname">send_subscribe</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">channelname</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/grapevine.html#GrapevineClient.send_subscribe"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.GrapevineClient.send_subscribe"title="Permalink to this definition">¶</a></dt>
<dd><p>Subscribe to new grapevine channel</p>
<p>Use with session.msg(subscribe=”channelname”)</p>
<codeclass="sig-name descname">send_unsubscribe</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">channelname</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/grapevine.html#GrapevineClient.send_unsubscribe"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.GrapevineClient.send_unsubscribe"title="Permalink to this definition">¶</a></dt>
<dd><p>Un-subscribe to a grapevine channel</p>
<p>Use with session.msg(unsubscribe=”channelname”)</p>
<codeclass="sig-name descname">send_channel</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">text</span></em>, <emclass="sig-param"><spanclass="n">channel</span></em>, <emclass="sig-param"><spanclass="n">sender</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/grapevine.html#GrapevineClient.send_channel"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.GrapevineClient.send_channel"title="Permalink to this definition">¶</a></dt>
<dd><p>Send text type Evennia -> grapevine</p>
<p>This is the channels/send message type</p>
<p>Use with session.msg(channel=(message, channel, sender))</p>
<codeclass="sig-name descname">send_default</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/grapevine.html#GrapevineClient.send_default"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.GrapevineClient.send_default"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">data_in</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">data</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/grapevine.html#GrapevineClient.data_in"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.GrapevineClient.data_in"title="Permalink to this definition">¶</a></dt>