Skip to content

Commit

Permalink
Deployed 64c0df0 with MkDocs version: 1.5.3
Browse files Browse the repository at this point in the history
  • Loading branch information
Unknown committed Mar 30, 2024
1 parent a48ec44 commit 25caabc
Show file tree
Hide file tree
Showing 13 changed files with 63 additions and 35 deletions.
2 changes: 1 addition & 1 deletion artifacts/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -928,7 +928,7 @@ <h2 id="stomp-artifacts">STOMP artifacts<a class="headerlink" href="#stomp-artif
</table>
<p>Then add the dependency of your choice to your Gradle build.
For instance, if you intend to use Krossbow with Kotlinx Serialization:</p>
<div class="highlight"><pre><span></span><code><span class="n">implementation</span><span class="p">(</span><span class="s">&quot;org.hildan.krossbow:krossbow-stomp-kxserialization:6.0.0-2-gb3e3a6dd&quot;</span><span class="p">)</span>
<div class="highlight"><pre><span></span><code><span class="n">implementation</span><span class="p">(</span><span class="s">&quot;org.hildan.krossbow:krossbow-stomp-kxserialization:6.0.0&quot;</span><span class="p">)</span>
</code></pre></div>
<div class="admonition tip">
<p class="admonition-title">Don't need STOMP?</p>
Expand Down
2 changes: 1 addition & 1 deletion search/search_index.json

Large diffs are not rendered by default.

Binary file modified sitemap.xml.gz
Binary file not shown.
2 changes: 1 addition & 1 deletion stomp/conversions/jackson/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -927,7 +927,7 @@ <h2 id="using-a-custom-objectmapper">Using a custom <code>ObjectMapper</code><a
<h2 id="dependency">Dependency<a class="headerlink" href="#dependency" title="Permanent link">&para;</a></h2>
<p>To use Jackson conversions, add <code>krossbow-stomp-jackson</code> to your Gradle dependencies
(<code>krossbow-stomp-core</code> is unnecessary because it's transitively brought by this one):</p>
<div class="highlight"><pre><span></span><code><span class="n">implementation</span><span class="p">(</span><span class="s">&quot;org.hildan.krossbow:krossbow-stomp-jackson:6.0.0-2-gb3e3a6dd&quot;</span><span class="p">)</span>
<div class="highlight"><pre><span></span><code><span class="n">implementation</span><span class="p">(</span><span class="s">&quot;org.hildan.krossbow:krossbow-stomp-jackson:6.0.0&quot;</span><span class="p">)</span>
</code></pre></div>
<p>This dependency transitively brings Jackson 2.17.0 with the <a href="https://github.com/FasterXML/jackson-module-kotlin">Kotlin module</a>.</p>

Expand Down
4 changes: 2 additions & 2 deletions stomp/conversions/kx-serialization/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -1075,12 +1075,12 @@ <h3 id="general-case">General case<a class="headerlink" href="#general-case" tit
<p>Krossbow's base Kotlinx Serialization module is format-agnostic, so you need to add both the
<code>krossbow-stomp-kxserialization</code> dependency and the Kotlinx Serialization dependency for the format you want to use.
For instance in the case of protobuf, that would be <code>kotlinx-serialization-protobuf</code>:</p>
<div class="highlight"><pre><span></span><code><span class="n">implementation</span><span class="p">(</span><span class="s">&quot;org.hildan.krossbow:krossbow-stomp-kxserialization:6.0.0-2-gb3e3a6dd&quot;</span><span class="p">)</span>
<div class="highlight"><pre><span></span><code><span class="n">implementation</span><span class="p">(</span><span class="s">&quot;org.hildan.krossbow:krossbow-stomp-kxserialization:6.0.0&quot;</span><span class="p">)</span>
<span class="n">implementation</span><span class="p">(</span><span class="s">&quot;org.jetbrains.kotlinx:kotlinx-serialization-protobuf:1.6.3&quot;</span><span class="p">)</span>
</code></pre></div>
<h3 id="json-format">JSON format<a class="headerlink" href="#json-format" title="Permanent link">&para;</a></h3>
<p>Since JSON is so common, Krossbow provides an all-in-one module with additional helpers for JSON:</p>
<div class="highlight"><pre><span></span><code><span class="n">implementation</span><span class="p">(</span><span class="s">&quot;org.hildan.krossbow:krossbow-stomp-kxserialization-json:6.0.0-2-gb3e3a6dd&quot;</span><span class="p">)</span>
<div class="highlight"><pre><span></span><code><span class="n">implementation</span><span class="p">(</span><span class="s">&quot;org.hildan.krossbow:krossbow-stomp-kxserialization-json:6.0.0&quot;</span><span class="p">)</span>
</code></pre></div>
<p>This module brings <code>kotlinx-serialization-json</code> transitively, so you don't have to add it yourself.</p>
<h3 id="additional-notes">Additional notes<a class="headerlink" href="#additional-notes" title="Permanent link">&para;</a></h3>
Expand Down
2 changes: 1 addition & 1 deletion stomp/conversions/moshi/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -901,7 +901,7 @@ <h1 id="stomp-with-moshi">STOMP with Moshi<a class="headerlink" href="#stomp-wit
<h2 id="dependency">Dependency<a class="headerlink" href="#dependency" title="Permanent link">&para;</a></h2>
<p>To use Moshi conversions, add <code>krossbow-stomp-moshi</code> to your Gradle dependencies
(<code>krossbow-stomp-core</code> is unnecessary because it's transitively brought by this one):</p>
<div class="highlight"><pre><span></span><code><span class="n">implementation</span><span class="p">(</span><span class="s">&quot;org.hildan.krossbow:krossbow-stomp-moshi:6.0.0-2-gb3e3a6dd&quot;</span><span class="p">)</span>
<div class="highlight"><pre><span></span><code><span class="n">implementation</span><span class="p">(</span><span class="s">&quot;org.hildan.krossbow:krossbow-stomp-moshi:6.0.0&quot;</span><span class="p">)</span>
</code></pre></div>
<p>This dependency transitively brings Moshi 1.15.1.</p>

Expand Down
72 changes: 50 additions & 22 deletions stomp/getting-started/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@
<div data-md-component="skip">


<a href="#gradle-setup" class="md-skip">
<a href="#choosing-a-web-socket-implementation" class="md-skip">
Skip to content
</a>

Expand Down Expand Up @@ -356,9 +356,18 @@
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>

<li class="md-nav__item">
<a href="#gradle-setup" class="md-nav__link">
<a href="#choosing-a-web-socket-implementation" class="md-nav__link">
<span class="md-ellipsis">
Gradle setup
Choosing a web socket implementation
</span>
</a>

</li>

<li class="md-nav__item">
<a href="#dependencies-setup" class="md-nav__link">
<span class="md-ellipsis">
Dependencies setup
</span>
</a>

Expand Down Expand Up @@ -864,9 +873,18 @@
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>

<li class="md-nav__item">
<a href="#gradle-setup" class="md-nav__link">
<a href="#choosing-a-web-socket-implementation" class="md-nav__link">
<span class="md-ellipsis">
Choosing a web socket implementation
</span>
</a>

</li>

<li class="md-nav__item">
<a href="#dependencies-setup" class="md-nav__link">
<span class="md-ellipsis">
Gradle setup
Dependencies setup
</span>
</a>

Expand Down Expand Up @@ -910,33 +928,43 @@

<h1>Getting started</h1>

<h2 id="gradle-setup">Gradle setup<a class="headerlink" href="#gradle-setup" title="Permanent link">&para;</a></h2>
<h2 id="choosing-a-web-socket-implementation">Choosing a web socket implementation<a class="headerlink" href="#choosing-a-web-socket-implementation" title="Permanent link">&para;</a></h2>
<p>Krossbow uses web sockets as transport for the STOMP communication.
Multiple web socket client implementations are supported.</p>
<p>Check out the <a href="../../#web-socket-clients-target-support">web socket client table</a> to help you choose a web socket
implementation based on the platforms you need to support.
You can find more information about each client in their respective section of this doc.</p>
<p>We recommend the built-in client adapters if they cover the Kotlin targets you need to support, in order to
limit 3rd party dependencies. Otherwise, Ktor is a good choice if you don't have special needs like SockJS.</p>
<h2 id="dependencies-setup">Dependencies setup<a class="headerlink" href="#dependencies-setup" title="Permanent link">&para;</a></h2>
<p>For the basic usage of STOMP without serialization, add the <code>krossbow-stomp-core</code> dependency as well as the web socket
module of your choice.</p>
<p>For example to use STOMP with Ktor's web socket client:</p>
<div class="highlight"><pre><span></span><code><span class="n">implementation</span><span class="p">(</span><span class="s">&quot;org.hildan.krossbow:krossbow-stomp-core:6.0.0-2-gb3e3a6dd&quot;</span><span class="p">)</span>
<span class="n">implementation</span><span class="p">(</span><span class="s">&quot;org.hildan.krossbow:krossbow-websocket-ktor:6.0.0-2-gb3e3a6dd&quot;</span><span class="p">)</span>
<p>For example to use STOMP with the built-in web socket client:</p>
<div class="highlight"><pre><span></span><code><span class="n">implementation</span><span class="p">(</span><span class="s">&quot;org.hildan.krossbow:krossbow-stomp-core:6.0.0&quot;</span><span class="p">)</span>
<span class="n">implementation</span><span class="p">(</span><span class="s">&quot;org.hildan.krossbow:krossbow-websocket-builtin:6.0.0&quot;</span><span class="p">)</span>
</code></pre></div>
<p>Check out the <a href="../../#web-socket-clients-target-support">web socket client table</a> to help you choose.
We recommend the built-in client adapters if they cover the Kotlin targets you need to support, in order to limit 3rd
party dependencies.
Otherwise, Ktor is a good choice if you don't have special needs like SockJS.</p>
<p>For other web socket clients, check out their dedicated documentation page to find out which Krossbow dependencies are
needed.</p>
<div class="admonition tip">
<p class="admonition-title">The rest of this guide uses the built-in client.</p>
</div>
<h2 id="basic-usage-without-body-conversions">Basic usage (without body conversions)<a class="headerlink" href="#basic-usage-without-body-conversions" title="Permanent link">&para;</a></h2>
<p>This is how to create a STOMP client and interact with it:</p>
<div class="highlight"><pre><span></span><code><span class="k">import</span><span class="w"> </span><span class="nn">kotlinx.coroutines.flow.*</span>
<span class="k">import</span><span class="w"> </span><span class="nn">org.hildan.krossbow.stomp.*</span>
<span class="k">import</span><span class="w"> </span><span class="nn">org.hildan.krossbow.websocket.*</span>
<span class="k">import</span><span class="w"> </span><span class="nn">org.hildan.krossbow.websocket.builtin.*</span>

<span class="kd">val</span><span class="w"> </span><span class="nv">client</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">StompClient</span><span class="p">(</span><span class="n">WebSocketClient</span><span class="p">.</span><span class="na">builtIn</span><span class="p">())</span><span class="w"> </span><span class="c1">// other config can be passed in here</span>
<div class="highlight"><pre><span></span><code><span class="kd">val</span><span class="w"> </span><span class="nv">client</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">StompClient</span><span class="p">(</span><span class="n">WebSocketClient</span><span class="p">.</span><span class="na">builtIn</span><span class="p">())</span><span class="w"> </span><span class="c1">// other config can be passed in here</span>
<span class="kd">val</span><span class="w"> </span><span class="nv">session</span><span class="p">:</span><span class="w"> </span><span class="n">StompSession</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">client</span><span class="p">.</span><span class="na">connect</span><span class="p">(</span><span class="n">url</span><span class="p">)</span><span class="w"> </span><span class="c1">// optional login/passcode can be provided here</span>

<span class="n">session</span><span class="p">.</span><span class="na">sendText</span><span class="p">(</span><span class="s">&quot;/some/destination&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;Basic text message&quot;</span><span class="p">)</span><span class="w"> </span>
<span class="c1">// Send text messages using this convenience function</span>
<span class="n">session</span><span class="p">.</span><span class="na">sendText</span><span class="p">(</span><span class="n">destination</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;/some/destination&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">body</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;Basic text message&quot;</span><span class="p">)</span>

<span class="c1">// Sometimes no message body is necessary</span>
<span class="n">session</span><span class="p">.</span><span class="na">sendEmptyMsg</span><span class="p">(</span><span class="n">destination</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;/some/destination&quot;</span><span class="p">)</span><span class="w"> </span>

<span class="c1">// this triggers a SUBSCRIBE frame and returns the flow of messages for the subscription</span>
<span class="c1">// This subscribe() call triggers a SUBSCRIBE frame</span>
<span class="c1">// and returns the flow of messages for the subscription</span>
<span class="kd">val</span><span class="w"> </span><span class="nv">subscription</span><span class="p">:</span><span class="w"> </span><span class="n">Flow</span><span class="o">&lt;</span><span class="kt">String</span><span class="o">&gt;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">session</span><span class="p">.</span><span class="na">subscribeText</span><span class="p">(</span><span class="s">&quot;/some/topic/destination&quot;</span><span class="p">)</span>

<span class="kd">val</span><span class="w"> </span><span class="nv">collectorJob</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">launch</span><span class="w"> </span><span class="p">{</span>
<span class="c1">// Use an appropriate coroutine &#39;scope&#39; to collect the received frames</span>
<span class="kd">val</span><span class="w"> </span><span class="nv">collectorJob</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">scope</span><span class="p">.</span><span class="na">launch</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="n">subscription</span><span class="p">.</span><span class="na">collect</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">msg</span><span class="w"> </span><span class="o">-&gt;</span>
<span class="w"> </span><span class="n">println</span><span class="p">(</span><span class="s">&quot;Received: </span><span class="si">$</span><span class="n">msg</span><span class="s">&quot;</span><span class="p">)</span>
<span class="w"> </span><span class="p">}</span>
Expand Down
2 changes: 1 addition & 1 deletion websocket/builtin/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -963,7 +963,7 @@ <h2 id="darwin-macos-ios-tvos-watchos">Darwin (macOS, iOS, tvOS, watchOS)<a clas
<a href="https://developer.apple.com/documentation/foundation/nsurlsessionwebsockettask">NSURLSessionWebSocketTask</a>.</p>
<h2 id="dependency-information">Dependency information<a class="headerlink" href="#dependency-information" title="Permanent link">&para;</a></h2>
<p>To use the built-in web socket clients, add the following to your <code>build.gradle</code>:</p>
<div class="highlight"><pre><span></span><code><span class="n">implementation</span><span class="p">(</span><span class="s">&quot;org.hildan.krossbow:krossbow-websocket-builtin:6.0.0-2-gb3e3a6dd&quot;</span><span class="p">)</span>
<div class="highlight"><pre><span></span><code><span class="n">implementation</span><span class="p">(</span><span class="s">&quot;org.hildan.krossbow:krossbow-websocket-builtin:6.0.0&quot;</span><span class="p">)</span>
</code></pre></div>


Expand Down
2 changes: 1 addition & 1 deletion websocket/custom/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -943,7 +943,7 @@ <h2 id="helpers">Helpers<a class="headerlink" href="#helpers" title="Permanent l
in any way on their web socket traffic.</p>
<h2 id="dependency-information">Dependency information<a class="headerlink" href="#dependency-information" title="Permanent link">&para;</a></h2>
<p>Add the following to your <code>build.gradle(.kts)</code> in order to get the Krossbow's interfaces and helpers:</p>
<div class="highlight"><pre><span></span><code><span class="n">implementation</span><span class="p">(</span><span class="s">&quot;org.hildan.krossbow:krossbow-websocket-core:6.0.0-2-gb3e3a6dd&quot;</span><span class="p">)</span>
<div class="highlight"><pre><span></span><code><span class="n">implementation</span><span class="p">(</span><span class="s">&quot;org.hildan.krossbow:krossbow-websocket-core:6.0.0&quot;</span><span class="p">)</span>
</code></pre></div>


Expand Down
4 changes: 2 additions & 2 deletions websocket/ktor/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -916,14 +916,14 @@ <h2 id="usage-with-stompclient">Usage with StompClient<a class="headerlink" href
</code></pre></div>
<h2 id="dependency-information">Dependency information<a class="headerlink" href="#dependency-information" title="Permanent link">&para;</a></h2>
<p>You will need to declare the following Gradle dependency to use the <code>KtorWebSocketClient</code>:</p>
<div class="highlight"><pre><span></span><code><span class="n">implementation</span><span class="p">(</span><span class="s">&quot;org.hildan.krossbow:krossbow-websocket-ktor:6.0.0-2-gb3e3a6dd&quot;</span><span class="p">)</span>
<div class="highlight"><pre><span></span><code><span class="n">implementation</span><span class="p">(</span><span class="s">&quot;org.hildan.krossbow:krossbow-websocket-ktor:6.0.0&quot;</span><span class="p">)</span>
</code></pre></div>
<p>Ktor uses <a href="https://ktor.io/clients/http-client/engines.html">pluggable engines</a> to perform the platform-specific
network operations (just like Krossbow uses different web socket implementations).
You need to pick an engine that supports web sockets in order to use Ktor's <code>HttpClient</code> with web sockets.
Follow Ktor's documentation to find out more about how to use engines.</p>
<p>For instance, if you want to use Ktor's CIO engine with Krossbow, you need to declare the following:</p>
<div class="highlight"><pre><span></span><code><span class="n">implementation</span><span class="p">(</span><span class="s">&quot;org.hildan.krossbow:krossbow-websocket-ktor:6.0.0-2-gb3e3a6dd&quot;</span><span class="p">)</span>
<div class="highlight"><pre><span></span><code><span class="n">implementation</span><span class="p">(</span><span class="s">&quot;org.hildan.krossbow:krossbow-websocket-ktor:6.0.0&quot;</span><span class="p">)</span>
<span class="n">implementation</span><span class="p">(</span><span class="s">&quot;io.ktor:ktor-client-cio:2.3.9&quot;</span><span class="p">)</span>
</code></pre></div>

Expand Down
2 changes: 1 addition & 1 deletion websocket/okhttp/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -917,7 +917,7 @@ <h2 id="usage-with-stompclient">Usage with StompClient<a class="headerlink" href
</code></pre></div>
<h2 id="dependency-information">Dependency information<a class="headerlink" href="#dependency-information" title="Permanent link">&para;</a></h2>
<p>You will need to declare the following Gradle dependency to use the <code>OkHttpWebSocketClient</code>:</p>
<div class="highlight"><pre><span></span><code><span class="n">implementation</span><span class="p">(</span><span class="s">&quot;org.hildan.krossbow:krossbow-websocket-okhttp:6.0.0-2-gb3e3a6dd&quot;</span><span class="p">)</span>
<div class="highlight"><pre><span></span><code><span class="n">implementation</span><span class="p">(</span><span class="s">&quot;org.hildan.krossbow:krossbow-websocket-okhttp:6.0.0&quot;</span><span class="p">)</span>
</code></pre></div>


Expand Down
2 changes: 1 addition & 1 deletion websocket/sockjs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -913,7 +913,7 @@ <h2 id="usage-with-stompclient">Usage with StompClient<a class="headerlink" href
</code></pre></div>
<h2 id="dependency-information">Dependency information<a class="headerlink" href="#dependency-information" title="Permanent link">&para;</a></h2>
<p>You will need to declare the following Gradle dependency to use the <code>SockJSClient</code>:</p>
<div class="highlight"><pre><span></span><code><span class="n">implementation</span><span class="p">(</span><span class="s">&quot;org.hildan.krossbow:krossbow-websocket-sockjs:6.0.0-2-gb3e3a6dd&quot;</span><span class="p">)</span>
<div class="highlight"><pre><span></span><code><span class="n">implementation</span><span class="p">(</span><span class="s">&quot;org.hildan.krossbow:krossbow-websocket-sockjs:6.0.0&quot;</span><span class="p">)</span>
</code></pre></div>


Expand Down
Loading

0 comments on commit 25caabc

Please sign in to comment.