UNPKG

actionhero

Version:

actionhero.js is a multi-transport API Server with integrated cluster capabilities and delayed tasks

356 lines 16.6 kB
<!doctype html> <html class="default no-js"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>ChatMiddleware | actionhero</title> <meta name="description" content="Documentation for actionhero"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="../assets/css/main.css"> </head> <body> <header> <div class="tsd-page-toolbar"> <div class="container"> <div class="table-wrap"> <div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base=".."> <div class="field"> <label for="tsd-search-field" class="tsd-widget search no-caption">Search</label> <input id="tsd-search-field" type="text" /> </div> <ul class="results"> <li class="state loading">Preparing search index...</li> <li class="state failure">The search index is not available</li> </ul> <a href="../index.html" class="title">actionhero</a> </div> <div class="table-cell" id="tsd-widgets"> <div id="tsd-filter"> <a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a> <div class="tsd-filter-group"> <div class="tsd-select" id="tsd-filter-visibility"> <span class="tsd-select-label">All</span> <ul class="tsd-select-list"> <li data-value="public">Public</li> <li data-value="protected">Public/Protected</li> <li data-value="private" class="selected">All</li> </ul> </div> <input type="checkbox" id="tsd-filter-inherited" checked /> <label class="tsd-widget" for="tsd-filter-inherited">Inherited</label> <input type="checkbox" id="tsd-filter-externals" checked /> <label class="tsd-widget" for="tsd-filter-externals">Externals</label> <input type="checkbox" id="tsd-filter-only-exported" /> <label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label> </div> </div> <a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a> </div> </div> </div> </div> <div class="tsd-page-title"> <div class="container"> <ul class="tsd-breadcrumb"> <li> <a href="../globals.html">Globals</a> </li> <li> <a href="../modules/chatroom.html">chatRoom</a> </li> <li> <a href="chatroom.chatmiddleware.html">ChatMiddleware</a> </li> </ul> <h1>Interface ChatMiddleware</h1> </div> </div> </header> <div class="container container-main"> <div class="row"> <div class="col-8 col-content"> <section class="tsd-panel tsd-comment"> <div class="tsd-comment tsd-typography"> <div class="lead"> <p>Middleware definition for processing chat events. Can be of the</p> </div> <pre><code class="language-js"> <span class="hljs-keyword">var</span> chatMiddleware = { <span class="hljs-attr">name</span>: <span class="hljs-string">'chat middleware'</span>, <span class="hljs-attr">priority</span>: <span class="hljs-number">1000</span>, <span class="hljs-attr">join</span>: <span class="hljs-function">(<span class="hljs-params">connection, room</span>) =&gt;</span> { <span class="hljs-comment">// announce all connections entering a room</span> api.chatRoom.broadcast({}, room, <span class="hljs-string">'I have joined the room: '</span> + connection.id, callback) }, <span class="hljs-attr">leave</span>:<span class="hljs-function">(<span class="hljs-params">connection, room, callback</span>) =&gt;</span> { <span class="hljs-comment">// announce all connections leaving a room</span> api.chatRoom.broadcast({}, room, <span class="hljs-string">'I have left the room: '</span> + connection.id, callback) }, <span class="hljs-comment">// Will be executed once per client connection before delivering the message.</span> <span class="hljs-attr">say</span>: <span class="hljs-function">(<span class="hljs-params">connection, room, messagePayload</span>) =&gt;</span> { <span class="hljs-comment">// do stuff</span> log(messagePayload) }, <span class="hljs-comment">// Will be executed only once, when the message is sent to the server.</span> <span class="hljs-attr">onSayReceive</span>: <span class="hljs-function">(<span class="hljs-params">connection, room, messagePayload</span>) =&gt;</span> { <span class="hljs-comment">// do stuff</span> log(messagePayload) } } api.chatRoom.addMiddleware(chatMiddleware)</code></pre> </div> </section> <section class="tsd-panel tsd-hierarchy"> <h3>Hierarchy</h3> <ul class="tsd-hierarchy"> <li> <span class="target">ChatMiddleware</span> </li> </ul> </section> <section class="tsd-panel-group tsd-index-group"> <h2>Index</h2> <section class="tsd-panel tsd-index-panel"> <div class="tsd-index-content"> <section class="tsd-index-section "> <h3>Properties</h3> <ul class="tsd-index-list"> <li class="tsd-kind-property tsd-parent-kind-interface"><a href="chatroom.chatmiddleware.html#join" class="tsd-kind-icon">join</a></li> <li class="tsd-kind-property tsd-parent-kind-interface"><a href="chatroom.chatmiddleware.html#leave" class="tsd-kind-icon">leave</a></li> <li class="tsd-kind-property tsd-parent-kind-interface"><a href="chatroom.chatmiddleware.html#name" class="tsd-kind-icon">name</a></li> <li class="tsd-kind-property tsd-parent-kind-interface"><a href="chatroom.chatmiddleware.html#onsayreceive" class="tsd-kind-icon">on<wbr>Say<wbr>Receive</a></li> <li class="tsd-kind-property tsd-parent-kind-interface"><a href="chatroom.chatmiddleware.html#priority" class="tsd-kind-icon">priority</a></li> <li class="tsd-kind-property tsd-parent-kind-interface"><a href="chatroom.chatmiddleware.html#say" class="tsd-kind-icon">say</a></li> </ul> </section> </div> </section> </section> <section class="tsd-panel-group tsd-member-group "> <h2>Properties</h2> <section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"> <a name="join" class="tsd-anchor"></a> <h3><span class="tsd-flag ts-flagOptional">Optional</span> join</h3> <div class="tsd-signature tsd-kind-icon">join<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Function</span></div> <aside class="tsd-sources"> <ul> <li>Defined in <a href="https://github.com/actionhero/actionhero/blob/fd12b4f0/src/modules/chatRoom.ts#L41">src/modules/chatRoom.ts:41</a></li> </ul> </aside> <div class="tsd-comment tsd-typography"> <div class="lead"> <p>Called when a connection joins a room.</p> </div> </div> </section> <section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"> <a name="leave" class="tsd-anchor"></a> <h3><span class="tsd-flag ts-flagOptional">Optional</span> leave</h3> <div class="tsd-signature tsd-kind-icon">leave<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Function</span></div> <aside class="tsd-sources"> <ul> <li>Defined in <a href="https://github.com/actionhero/actionhero/blob/fd12b4f0/src/modules/chatRoom.ts#L43">src/modules/chatRoom.ts:43</a></li> </ul> </aside> <div class="tsd-comment tsd-typography"> <div class="lead"> <p>Called when a connection leaves a room.</p> </div> </div> </section> <section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"> <a name="name" class="tsd-anchor"></a> <h3>name</h3> <div class="tsd-signature tsd-kind-icon">name<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div> <aside class="tsd-sources"> <ul> <li>Defined in <a href="https://github.com/actionhero/actionhero/blob/fd12b4f0/src/modules/chatRoom.ts#L37">src/modules/chatRoom.ts:37</a></li> </ul> </aside> <div class="tsd-comment tsd-typography"> <div class="lead"> <p>Unique name for the middleware.</p> </div> </div> </section> <section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"> <a name="onsayreceive" class="tsd-anchor"></a> <h3><span class="tsd-flag ts-flagOptional">Optional</span> on<wbr>Say<wbr>Receive</h3> <div class="tsd-signature tsd-kind-icon">on<wbr>Say<wbr>Receive<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Function</span></div> <aside class="tsd-sources"> <ul> <li>Defined in <a href="https://github.com/actionhero/actionhero/blob/fd12b4f0/src/modules/chatRoom.ts#L45">src/modules/chatRoom.ts:45</a></li> </ul> </aside> <div class="tsd-comment tsd-typography"> <div class="lead"> <p>Called when a connection says a message to a room.</p> </div> </div> </section> <section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"> <a name="priority" class="tsd-anchor"></a> <h3><span class="tsd-flag ts-flagOptional">Optional</span> priority</h3> <div class="tsd-signature tsd-kind-icon">priority<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div> <aside class="tsd-sources"> <ul> <li>Defined in <a href="https://github.com/actionhero/actionhero/blob/fd12b4f0/src/modules/chatRoom.ts#L39">src/modules/chatRoom.ts:39</a></li> </ul> </aside> <div class="tsd-comment tsd-typography"> <div class="lead"> <p>Module load order. Defaults to <code>api.config.general.defaultMiddlewarePriority</code>.</p> </div> </div> </section> <section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface"> <a name="say" class="tsd-anchor"></a> <h3><span class="tsd-flag ts-flagOptional">Optional</span> say</h3> <div class="tsd-signature tsd-kind-icon">say<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Function</span></div> <aside class="tsd-sources"> <ul> <li>Defined in <a href="https://github.com/actionhero/actionhero/blob/fd12b4f0/src/modules/chatRoom.ts#L47">src/modules/chatRoom.ts:47</a></li> </ul> </aside> <div class="tsd-comment tsd-typography"> <div class="lead"> <p>Called when a connection is about to receive a say message.</p> </div> </div> </section> </section> </div> <div class="col-4 col-menu menu-sticky-wrap menu-highlight"> <nav class="tsd-navigation primary"> <ul> <li class="globals "> <a href="../globals.html"><em>Globals</em></a> </li> <li class=" tsd-kind-namespace"> <a href="../modules/action.html">action</a> </li> <li class=" tsd-kind-namespace"> <a href="../modules/cache.html">cache</a> </li> <li class="current tsd-kind-namespace"> <a href="../modules/chatroom.html">chat<wbr>Room</a> </li> <li class=" tsd-kind-namespace"> <a href="../modules/i18n.html">i18n</a> </li> <li class=" tsd-kind-namespace"> <a href="../modules/redis.html">redis</a> </li> <li class=" tsd-kind-namespace"> <a href="../modules/route.html">route</a> </li> <li class=" tsd-kind-namespace"> <a href="../modules/spechelper.html">spec<wbr>Helper</a> </li> <li class=" tsd-kind-namespace"> <a href="../modules/task.html">task</a> </li> </ul> </nav> <nav class="tsd-navigation secondary menu-sticky"> <ul class="before-current"> </ul> <ul class="current"> <li class="current tsd-kind-interface tsd-parent-kind-namespace"> <a href="chatroom.chatmiddleware.html" class="tsd-kind-icon">Chat<wbr>Middleware</a> <ul> <li class=" tsd-kind-property tsd-parent-kind-interface"> <a href="chatroom.chatmiddleware.html#join" class="tsd-kind-icon">join</a> </li> <li class=" tsd-kind-property tsd-parent-kind-interface"> <a href="chatroom.chatmiddleware.html#leave" class="tsd-kind-icon">leave</a> </li> <li class=" tsd-kind-property tsd-parent-kind-interface"> <a href="chatroom.chatmiddleware.html#name" class="tsd-kind-icon">name</a> </li> <li class=" tsd-kind-property tsd-parent-kind-interface"> <a href="chatroom.chatmiddleware.html#onsayreceive" class="tsd-kind-icon">on<wbr>Say<wbr>Receive</a> </li> <li class=" tsd-kind-property tsd-parent-kind-interface"> <a href="chatroom.chatmiddleware.html#priority" class="tsd-kind-icon">priority</a> </li> <li class=" tsd-kind-property tsd-parent-kind-interface"> <a href="chatroom.chatmiddleware.html#say" class="tsd-kind-icon">say</a> </li> </ul> </li> </ul> <ul class="after-current"> <li class=" tsd-kind-interface tsd-parent-kind-namespace"> <a href="chatroom.chatpubsubmessage.html" class="tsd-kind-icon">Chat<wbr>Pub<wbr>Sub<wbr>Message</a> </li> <li class=" tsd-kind-function tsd-parent-kind-namespace"> <a href="../modules/chatroom.html#add" class="tsd-kind-icon">add</a> </li> <li class=" tsd-kind-function tsd-parent-kind-namespace"> <a href="../modules/chatroom.html#addmember" class="tsd-kind-icon">add<wbr>Member</a> </li> <li class=" tsd-kind-function tsd-parent-kind-namespace"> <a href="../modules/chatroom.html#addmiddleware" class="tsd-kind-icon">add<wbr>Middleware</a> </li> <li class=" tsd-kind-function tsd-parent-kind-namespace"> <a href="../modules/chatroom.html#broadcast" class="tsd-kind-icon">broadcast</a> </li> <li class=" tsd-kind-function tsd-parent-kind-namespace"> <a href="../modules/chatroom.html#destroy" class="tsd-kind-icon">destroy</a> </li> <li class=" tsd-kind-function tsd-parent-kind-namespace"> <a href="../modules/chatroom.html#exists" class="tsd-kind-icon">exists</a> </li> <li class=" tsd-kind-function tsd-parent-kind-namespace"> <a href="../modules/chatroom.html#generatememberdetails" class="tsd-kind-icon">generate<wbr>Member<wbr>Details</a> </li> <li class=" tsd-kind-function tsd-parent-kind-namespace"> <a href="../modules/chatroom.html#list" class="tsd-kind-icon">list</a> </li> <li class=" tsd-kind-function tsd-parent-kind-namespace"> <a href="../modules/chatroom.html#removemember" class="tsd-kind-icon">remove<wbr>Member</a> </li> <li class=" tsd-kind-function tsd-parent-kind-namespace"> <a href="../modules/chatroom.html#roomstatus" class="tsd-kind-icon">room<wbr>Status</a> </li> <li class=" tsd-kind-function tsd-parent-kind-namespace"> <a href="../modules/chatroom.html#sanitizememberdetails" class="tsd-kind-icon">sanitize<wbr>Member<wbr>Details</a> </li> </ul> </nav> </div> </div> </div> <footer class="with-border-bottom"> <div class="container"> <h2>Legend</h2> <div class="tsd-legend-group"> <ul class="tsd-legend"> <li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li> <li class="tsd-kind-property tsd-parent-kind-class"><span class="tsd-kind-icon">Property</span></li> <li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li> </ul> <ul class="tsd-legend"> <li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited property</span></li> <li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited method</span></li> </ul> <ul class="tsd-legend"> <li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li> </ul> <ul class="tsd-legend"> <li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private method</span></li> </ul> <ul class="tsd-legend"> <li class="tsd-kind-method tsd-parent-kind-class tsd-is-static"><span class="tsd-kind-icon">Static method</span></li> </ul> </div> </div> </footer> <div class="container tsd-generator"> <p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p> </div> <div class="overlay"></div> <script src="../assets/js/main.js"></script> <script>if (location.protocol == 'file:') document.write('<script src="../assets/js/search.js"><' + '/script>');</script> </body> </html>