1
0
mirror of https://github.com/taigrr/nats.docs synced 2025-01-18 04:03:23 -08:00

updated generated book

This commit is contained in:
Alberto Ricart 2019-05-15 14:19:28 -05:00
parent 846e4de6c7
commit 2f1ed14f2c
63 changed files with 2009 additions and 6698 deletions

View File

@ -1,11 +0,0 @@
# Building the Book
The build uses https://github.com/Bandwidth/gitbook-plugin-include-html to include html directly for code examples as well as the prism plugin to handle code highlighting. CSS for code highlighting seems to get mucked up sometimes if you don't use the default them, this is something to work on in the future.
Icons for dev examples are from https://cdn.materialdesignicons.com/3.6.95/.
To build the examples
```bash
% go run tools/examplecompiler/main.go -o developer/examples -r tools/examplecompiler/example_repos.json -t tools/examplecompiler/example_template.tmp
```

View File

@ -102,9 +102,10 @@
</li>
<ul class="articles">
<li class="chapter " data-level="1.2" data-path="../nats_server/">
<li class="chapter " data-level="1.1.1" data-path="../nats_server/">
<a href="../nats_server/">
@ -118,7 +119,7 @@
<ul class="articles">
<li class="chapter " data-level="1.2.1" data-path="../nats_server/installation.html">
<li class="chapter " data-level="1.1.1.1" data-path="../nats_server/installation.html">
<a href="../nats_server/installation.html">
@ -131,7 +132,7 @@
</li>
<li class="chapter " data-level="1.2.2" data-path="../nats_server/running.html">
<li class="chapter " data-level="1.1.1.2" data-path="../nats_server/running.html">
<a href="../nats_server/running.html">
@ -144,7 +145,7 @@
</li>
<li class="chapter " data-level="1.2.3" data-path="../nats_server/clients.html">
<li class="chapter " data-level="1.1.1.3" data-path="../nats_server/clients.html">
<a href="../nats_server/clients.html">
@ -155,6 +156,139 @@
</li>
<li class="chapter " data-level="1.1.1.4" data-path="../nats_server/flags.html">
<a href="../nats_server/flags.html">
Flags
</a>
</li>
<li class="chapter " data-level="1.1.1.5" data-path="../nats_server/configuration.html">
<a href="../nats_server/configuration.html">
Configuration File
</a>
<ul class="articles">
<li class="chapter " data-level="1.1.1.5.1" data-path="../nats_server/authentication.html">
<a href="../nats_server/authentication.html">
Authentication
</a>
</li>
<li class="chapter " data-level="1.1.1.5.2" data-path="../nats_server/authorization.html">
<a href="../nats_server/authorization.html">
Authorization
</a>
</li>
<li class="chapter " data-level="1.1.1.5.3" data-path="../nats_server/clustering.html">
<a href="../nats_server/clustering.html">
Clustering
</a>
</li>
<li class="chapter " data-level="1.1.1.5.4" data-path="../nats_server/tls.html">
<a href="../nats_server/tls.html">
TLS Security
</a>
</li>
<li class="chapter " data-level="1.1.1.5.5" data-path="../nats_server/logging.html">
<a href="../nats_server/logging.html">
Logging
</a>
</li>
<li class="chapter " data-level="1.1.1.5.6" data-path="../nats_server/monitoring.html">
<a href="../nats_server/monitoring.html">
Monitoring
</a>
<ul class="articles">
<li class="chapter " data-level="1.1.1.5.6.1" data-path="../nats_server/natstop.html">
<a href="../nats_server/natstop.html">
Statistics
</a>
<ul class="articles">
<li class="chapter " data-level="1.1.1.5.6.1.1" data-path="../nats_server/nats_top_tutorial.html">
<a href="../nats_server/nats_top_tutorial.html">
NATS Top Tutorial
</a>
</li>
@ -162,7 +296,66 @@
</li>
<li class="chapter " data-level="1.3" data-path="./">
</ul>
</li>
</ul>
</li>
<li class="chapter " data-level="1.1.1.6" data-path="../nats_server/signals.html">
<a href="../nats_server/signals.html">
Signals
</a>
</li>
<li class="chapter " data-level="1.1.1.7" data-path="../nats_server/windows_srv.html">
<a href="../nats_server/windows_srv.html">
Window Service
</a>
</li>
<li class="chapter " data-level="1.1.1.8" data-path="../nats_server/upgrading.html">
<a href="../nats_server/upgrading.html">
Upgrading a Cluster
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="chapter " data-level="1.2" data-path="./">
<a href="./">
@ -176,7 +369,7 @@
<ul class="articles">
<li class="chapter active" data-level="1.3.1" data-path="connecting.html">
<li class="chapter active" data-level="1.2.1" data-path="connecting.html">
<a href="connecting.html">
@ -1421,7 +1614,7 @@ nc<span class="token punctuation">.</span><span class="token function">close</sp
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"Connecting","level":"1.3.1","depth":2,"previous":{"title":"Developing with NATS","level":"1.3","depth":1,"path":"developer/README.md","ref":"developer/README.md","articles":[{"title":"Connecting","level":"1.3.1","depth":2,"path":"developer/connecting.md","ref":"developer/connecting.md","articles":[]}]},"dir":"ltr"},"config":{"plugins":["prism","-highlight","include-html"],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"prism":{},"include-html":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","author":"The NATS Maintainers","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"NATS","gitbook":"*","description":"Administrative, developer and conceptual documentation for the NATS messaging system."},"file":{"path":"developer/connecting.md","mtime":"2019-05-15T17:40:53.874Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-05-15T17:41:03.846Z"},"basePath":"..","book":{"language":""}});
gitbook.page.hasChanged({"page":{"title":"Connecting","level":"1.2.1","depth":2,"previous":{"title":"Developing with NATS","level":"1.2","depth":1,"path":"developer/README.md","ref":"developer/README.md","articles":[{"title":"Connecting","level":"1.2.1","depth":2,"path":"developer/connecting.md","ref":"developer/connecting.md","articles":[]}]},"dir":"ltr"},"config":{"plugins":["prism","-highlight","include-html"],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"prism":{},"include-html":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","author":"The NATS Maintainers","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"NATS","gitbook":"*","description":"Administrative, developer and conceptual documentation for the NATS messaging system."},"file":{"path":"developer/connecting.md","mtime":"2019-05-15T19:12:56.758Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-05-15T19:18:57.723Z"},"basePath":"..","book":{"language":""}});
});
</script>
</div>

View File

@ -1,115 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="connect_default_go" name="connect_default" class="tab" checked>
<label for="connect_default_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="connect_default_java" name="connect_default" class="tab">
<label for="connect_default_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="connect_default_js" name="connect_default" class="tab">
<label for="connect_default_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="connect_default_py" name="connect_default" class="tab">
<label for="connect_default_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="connect_default_ruby" name="connect_default" class="tab">
<label for="connect_default_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="connect_default_ts" name="connect_default" class="tab">
<label for="connect_default_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="connect_default_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/connect_default/main.go#L10-19"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">nc, err := nats.Connect(nats.DefaultURL)
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Do something with the connection
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_default_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/ConnectToDefaultServer.java#L10-16"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Connection nc = Nats.connect();
// Do something with the connection
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_default_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/connection_samples.js#L22-33"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let nc = NATS.connect();
nc.on(&#39;connect&#39;, (c) =&gt; {
// Do something with the connection
doSomething();
// When done close it
nc.close();
});
nc.on(&#39;error&#39;, (err) =&gt; {
failed(err);
});
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_default_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/connect_default.py#L5-13"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
await nc.connect()
# Do something with the connection
await nc.close()
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_default_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/connect_default.rb#L1-10"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">require &#39;nats/client&#39;
NATS.start do |nc|
# Do something with the connection
# Close the connection
nc.close
end
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_default_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/connection_samples.ts#L16-34"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// will throw an exception if connection fails
let nc = await connect();
// Do something with the connection
// When done close it
nc.close();
// alternatively, you can use the Promise pattern
let nc1: Client;
connect()
.then((c) =&gt; {
nc1 = c;
// Do something with the connection
nc1.close();
});
// add a .catch/.finally
</code></pre>
</div>
</div>

View File

@ -1,129 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="connect_multiple_go" name="connect_multiple" class="tab" checked>
<label for="connect_multiple_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="connect_multiple_java" name="connect_multiple" class="tab">
<label for="connect_multiple_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="connect_multiple_js" name="connect_multiple" class="tab">
<label for="connect_multiple_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="connect_multiple_py" name="connect_multiple" class="tab">
<label for="connect_multiple_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="connect_multiple_ruby" name="connect_multiple" class="tab">
<label for="connect_multiple_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="connect_multiple_ts" name="connect_multiple" class="tab">
<label for="connect_multiple_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="connect_multiple_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/connect_multiple/main.go#L11-25"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">servers := []string{&#34;nats://localhost:1222&#34;,
&#34;nats://localhost:1223&#34;,
&#34;nats://localhost:1224&#34;,
}
nc, err := nats.Connect(strings.Join(servers, &#34;,&#34;))
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Do something with the connection
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_multiple_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/ConnectToMultipleServers.java#L11-22"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Options options = new Options.Builder().
server(&#34;nats://localhost:1222&#34;).
server(&#34;nats://localhost:1223&#34;).
server(&#34;nats://localhost:1224&#34;).
build();
Connection nc = Nats.connect(options);
// Do something with the connection
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_multiple_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/connection_samples.js#L67-84"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let nc = NATS.connect({
servers: [
&#34;nats://demo.nats.io:4222&#34;,
&#34;nats://localhost:4222&#34;
]}
);
nc.on(&#39;connect&#39;, (c) =&gt; {
// Do something with the connection
doSomething();
// When done close it
nc.close();
});
nc.on(&#39;error&#39;, (err) =&gt; {
failed(err);
});
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_multiple_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/connect_multiple.py#L5-17"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
await nc.connect(servers=[
&#34;nats://127.0.0.1:1222&#34;,
&#34;nats://127.0.0.1:1223&#34;,
&#34;nats://127.0.0.1:1224&#34;
])
# Do something with the connection
await nc.close()
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_multiple_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/connect_multiple.rb#L1-10"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">require &#39;nats/client&#39;
NATS.start(servers: [&#34;nats://127.0.0.1:1222&#34;, &#34;nats://127.0.0.1:1223&#34;, &#34;nats://127.0.0.1:1224&#34;]) do |nc|
# Do something with the connection
# Close the connection
nc.close
end
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_multiple_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/connection_samples.ts#L53-65"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// will throw an exception if connection fails
let nc = await connect({
servers: [
&#34;nats://demo.nats.io:4222&#34;,
&#34;nats://localhost:4222&#34;
]
});
// Do something with the connection
// When done close it
nc.close();
</code></pre>
</div>
</div>

View File

@ -1,109 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="connect_name_go" name="connect_name" class="tab" checked>
<label for="connect_name_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="connect_name_java" name="connect_name" class="tab">
<label for="connect_name_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="connect_name_js" name="connect_name" class="tab">
<label for="connect_name_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="connect_name_py" name="connect_name" class="tab">
<label for="connect_name_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="connect_name_ruby" name="connect_name" class="tab">
<label for="connect_name_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="connect_name_ts" name="connect_name" class="tab">
<label for="connect_name_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="connect_name_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/connect_name/main.go#L10-20"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">// Set a connection name
nc, err := nats.Connect(&#34;demo.nats.io&#34;, nats.Name(&#34;my-connection&#34;))
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Do something with the connection
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_name_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/ConnectName.java#L11-21"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Options options = new Options.Builder().
server(&#34;nats://demo.nats.io:4222&#34;).
connectionName(&#34;my-connection&#34;). // Set a connection name
build();
Connection nc = Nats.connect(options);
// Do something with the connection
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_name_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/options_samples.js#L73-79"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let nc = NATS.connect({
url: &#34;nats://demo.nats.io:4222&#34;,
name: &#34;my-connection&#34;
});
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_name_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/connect_name.py#L6-13"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
await nc.connect(servers=[&#34;nats://demo.nats.io:4222&#34;], name=&#34;my-connection&#34;)
# Do something with the connection.
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_name_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/connect_name.rb#L1-15"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">require &#39;nats/client&#39;
NATS.start(servers:[&#34;nats://demo.nats.io:4222&#34;], name: &#34;my-connection&#34;) do |nc|
nc.on_reconnect do
puts &#34;Got reconnected to #{nc.connected_server}&#34;
end
nc.on_disconnect do |reason|
puts &#34;Got disconnected! #{reason}&#34;
end
nc.close
end
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_name_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/options_samples.ts#L55-63"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// will throw an exception if connection fails
let nc = await connect({
url: &#34;nats://demo.nats.io:4222&#34;,
name: &#34;my-connection&#34;
});
nc.close();
</code></pre>
</div>
</div>

View File

@ -1,102 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="connect_options_go" name="connect_options" class="tab" checked>
<label for="connect_options_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="connect_options_java" name="connect_options" class="tab">
<label for="connect_options_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="connect_options_js" name="connect_options" class="tab">
<label for="connect_options_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="connect_options_py" name="connect_options" class="tab">
<label for="connect_options_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="connect_options_ruby" name="connect_options" class="tab">
<label for="connect_options_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="connect_options_ts" name="connect_options" class="tab">
<label for="connect_options_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="connect_options_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/connect_options/main.go#L11-20"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">nc, err := nats.Connect(nats.DefaultURL, nats.Timeout(10*time.Second))
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Do something with the connection
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_options_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/ConnectWithOptions.java#L13-23"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Options options = new Options.Builder().
server(&#34;nats://demo.nats.io:4222&#34;).
connectionTimeout(Duration.ofSeconds(10)). // Set timeout
build();
Connection nc = Nats.connect(options);
// Do something with the connection
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_options_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/options_samples.js#L121-123"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// connection timeout is not supported on node-nats
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_options_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/connect_options.py#L5-13"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
await nc.connect(connect_timeout=2)
# Do something with the connection
await nc.close()
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_options_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/connect_options.rb#L1-14"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby"># There is currently no connect timeout as part of the Ruby NATS client API, but you can use a timer to mimic it.
require &#39;nats/client&#39;
timer = EM.add_timer(5) do
NATS.connect do |nc|
# Do something with the connection
# Close the connection
nc.close
end
end
EM.cancel_timer(timer)
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_options_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/options_samples.ts#L89-95"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let nc = await connect({
url: &#34;nats://demo.nats.io:4222&#34;,
timeout: 1000
});
</code></pre>
</div>
</div>

View File

@ -1,112 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="connect_pedantic_go" name="connect_pedantic" class="tab" checked>
<label for="connect_pedantic_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="connect_pedantic_java" name="connect_pedantic" class="tab">
<label for="connect_pedantic_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="connect_pedantic_js" name="connect_pedantic" class="tab">
<label for="connect_pedantic_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="connect_pedantic_py" name="connect_pedantic" class="tab">
<label for="connect_pedantic_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="connect_pedantic_ruby" name="connect_pedantic" class="tab">
<label for="connect_pedantic_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="connect_pedantic_ts" name="connect_pedantic" class="tab">
<label for="connect_pedantic_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="connect_pedantic_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/connect_pedantic/main.go#L10-23"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">opts := nats.GetDefaultOptions()
opts.Url = &#34;demo.nats.io&#34;
// Turn on Pedantic
opts.Pedantic = true
nc, err := opts.Connect()
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Do something with the connection
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_pedantic_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/ConnectPedantic.java#L11-21"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Options options = new Options.Builder().
server(&#34;nats://demo.nats.io:4222&#34;).
pedantic(). // Turn on pedantic
build();
Connection nc = Nats.connect(options);
// Do something with the connection
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_pedantic_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/options_samples.js#L39-45"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let nc = NATS.connect({
url: &#34;nats://demo.nats.io:4222&#34;,
pedantic: true
});
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_pedantic_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/connect_pedantic.py#L6-13"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
await nc.connect(servers=[&#34;nats://demo.nats.io:4222&#34;], pedantic=True)
# Do something with the connection.
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_pedantic_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/connect_pedantic.rb#L1-15"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">require &#39;nats/client&#39;
NATS.start(pedantic: true) do |nc|
nc.on_reconnect do
puts &#34;Got reconnected to #{nc.connected_server}&#34;
end
nc.on_disconnect do |reason|
puts &#34;Got disconnected! #{reason}&#34;
end
nc.close
end
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_pedantic_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/options_samples.ts#L29-37"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// will throw an exception if connection fails
let nc = await connect({
url: &#34;nats://demo.nats.io:4222&#34;,
pedantic: true
});
nc.close();
</code></pre>
</div>
</div>

View File

@ -1,144 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="connect_status_go" name="connect_status" class="tab" checked>
<label for="connect_status_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="connect_status_java" name="connect_status" class="tab">
<label for="connect_status_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="connect_status_js" name="connect_status" class="tab">
<label for="connect_status_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="connect_status_py" name="connect_status" class="tab">
<label for="connect_status_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="connect_status_ruby" name="connect_status" class="tab">
<label for="connect_status_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="connect_status_ts" name="connect_status" class="tab">
<label for="connect_status_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="connect_status_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/connect_status/main.go#L10-33"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">nc, err := nats.Connect(&#34;demo.nats.io&#34;)
if err != nil {
log.Fatal(err)
}
defer nc.Close()
getStatusTxt := func(nc *nats.Conn) string {
switch nc.Status() {
case nats.CONNECTED:
return &#34;Connected&#34;
case nats.CLOSED:
return &#34;Closed&#34;
default:
return &#34;Other&#34;
}
}
log.Printf(&#34;The connection is %v\n&#34;, getStatusTxt(nc))
nc.Close()
log.Printf(&#34;The connection is %v\n&#34;, getStatusTxt(nc))
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_status_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/GetConnectionStatus.java#L10-18"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Connection nc = Nats.connect(&#34;nats://demo.nats.io:4222&#34;);
System.out.println(&#34;The Connection is: &#34; &#43; nc.getStatus());
nc.close();
System.out.println(&#34;The Connection is: &#34; &#43; nc.getStatus());
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_status_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/event_samples.js#L99-113"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let nc = NATS.connect(&#34;nats://demo.nats.io:4222&#34;);
// on node you *must* register an error listener. If not registered
// the library emits an &#39;error&#39; event, the node process will exit.
nc.on(&#39;error&#39;, (err) =&gt; {
t.log(&#39;client got an error:&#39;, err);
});
if(nc.closed) {
t.log(&#39;client is closed&#39;);
} else {
t.log(&#39;client is not closed&#39;);
}
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_status_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/connect_status.py#L6-27"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
await nc.connect(
servers=[&#34;nats://demo.nats.io:4222&#34;],
)
# Do something with the connection.
print(&#34;The connection is connected?&#34;, nc.is_connected)
while True:
if nc.is_reconnecting:
print(&#34;Reconnecting to NATS...&#34;)
break
await asyncio.sleep(1)
await nc.close()
print(&#34;The connection is closed?&#34;, nc.is_closed)
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_status_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/connect_status.rb#L3-21"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">NATS.start(max_reconnect_attempts: 2) do |nc|
puts &#34;Connect is connected?: #{nc.connected?}&#34;
timer = EM.add_periodic_timer(1) do
if nc.closing?
puts &#34;Connection closed...&#34;
EM.cancel_timer(timer)
NATS.stop
end
if nc.reconnecting?
puts &#34;Reconnecting to NATS...&#34;
next
end
end
end
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_status_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/event_samples.ts#L62-68"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">if(nc.isClosed()) {
t.log(&#39;the client is closed&#39;);
} else {
t.log(&#39;the client is running&#39;);
}
</code></pre>
</div>
</div>

View File

@ -1,213 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="connect_tls_go" name="connect_tls" class="tab" checked>
<label for="connect_tls_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="connect_tls_java" name="connect_tls" class="tab">
<label for="connect_tls_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="connect_tls_js" name="connect_tls" class="tab">
<label for="connect_tls_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="connect_tls_py" name="connect_tls" class="tab">
<label for="connect_tls_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="connect_tls_ruby" name="connect_tls" class="tab">
<label for="connect_tls_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="connect_tls_ts" name="connect_tls" class="tab">
<label for="connect_tls_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="connect_tls_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/connect_tls/main.go#L10-21"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">nc, err := nats.Connect(&#34;localhost&#34;,
nats.ClientCert(&#34;resources/certs/cert.pem&#34;, &#34;resources/certs/key.pem&#34;),
nats.RootCAs(&#34;resources/certs/ca.pem&#34;))
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Do something with the connection
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_tls_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/ConnectTLS.java#L18-81"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">class SSLUtils {
public static String KEYSTORE_PATH = &#34;src/main/resources/keystore.jks&#34;;
public static String TRUSTSTORE_PATH = &#34;src/main/resources/cacerts&#34;;
public static String STORE_PASSWORD = &#34;password&#34;;
public static String KEY_PASSWORD = &#34;password&#34;;
public static String ALGORITHM = &#34;SunX509&#34;;
public static KeyStore loadKeystore(String path) throws Exception {
KeyStore store = KeyStore.getInstance(&#34;JKS&#34;);
BufferedInputStream in = new BufferedInputStream(new FileInputStream(path));
try {
store.load(in, STORE_PASSWORD.toCharArray());
} finally {
if (in != null) {
in.close();
}
}
return store;
}
public static KeyManager[] createTestKeyManagers() throws Exception {
KeyStore store = loadKeystore(KEYSTORE_PATH);
KeyManagerFactory factory = KeyManagerFactory.getInstance(ALGORITHM);
factory.init(store, KEY_PASSWORD.toCharArray());
return factory.getKeyManagers();
}
public static TrustManager[] createTestTrustManagers() throws Exception {
KeyStore store = loadKeystore(TRUSTSTORE_PATH);
TrustManagerFactory factory = TrustManagerFactory.getInstance(ALGORITHM);
factory.init(store);
return factory.getTrustManagers();
}
public static SSLContext createSSLContext() throws Exception {
SSLContext ctx = SSLContext.getInstance(Options.DEFAULT_SSL_PROTOCOL);
ctx.init(createTestKeyManagers(), createTestTrustManagers(), new SecureRandom());
return ctx;
}
}
public class ConnectTLS {
public static void main(String[] args) {
try {
SSLContext ctx = SSLUtils.createSSLContext();
Options options = new Options.Builder().
server(&#34;nats://localhost:4222&#34;).
sslContext(ctx). // Set the SSL context
build();
Connection nc = Nats.connect(options);
// Do something with the connection
nc.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_tls_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/tls_samples.js#L44-56"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let caCert = fs.readFileSync(caCertPath);
let clientCert = fs.readFileSync(clientCertPath);
let clientKey = fs.readFileSync(clientKeyPath);
let nc = NATS.connect({
url: url,
tls: {
ca: [caCert],
key: [clientKey],
cert: [clientCert]
}
});
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_tls_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/connect_tls.py#L7-20"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
ssl_ctx = ssl.create_default_context(purpose=ssl.Purpose.SERVER_AUTH)
ssl_ctx.load_verify_locations(&#39;ca.pem&#39;)
ssl_ctx.load_cert_chain(certfile=&#39;client-cert.pem&#39;,
keyfile=&#39;client-key.pem&#39;)
await nc.connect(io_loop=loop, tls=ssl_ctx)
await nc.connect(servers=[&#34;nats://demo.nats.io:4222&#34;], tls=ssl_ctx)
# Do something with the connection.
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_tls_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/connect_tls.rb#L3-51"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">EM.run do
options = {
:servers =&gt; [
&#39;nats://localhost:4222&#39;,
],
:tls =&gt; {
:private_key_file =&gt; &#39;./spec/configs/certs/key.pem&#39;,
:cert_chain_file =&gt; &#39;./spec/configs/certs/server.pem&#39;
}
}
NATS.connect(options) do |nc|
puts &#34;#{Time.now.to_f} - Connected to NATS at #{nc.connected_server}&#34;
nc.subscribe(&#34;hello&#34;) do |msg|
puts &#34;#{Time.now.to_f} - Received: #{msg}&#34;
end
nc.flush do
nc.publish(&#34;hello&#34;, &#34;world&#34;)
end
EM.add_periodic_timer(0.1) do
next unless nc.connected?
nc.publish(&#34;hello&#34;, &#34;hello&#34;)
end
# Set default callbacks
nc.on_error do |e|
puts &#34;#{Time.now.to_f } - Error: #{e}&#34;
end
nc.on_disconnect do |reason|
puts &#34;#{Time.now.to_f} - Disconnected: #{reason}&#34;
end
nc.on_reconnect do |nc|
puts &#34;#{Time.now.to_f} - Reconnected to NATS server at #{nc.connected_server}&#34;
end
nc.on_close do
puts &#34;#{Time.now.to_f} - Connection to NATS closed&#34;
EM.stop
end
end
end
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_tls_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/tls_samples.ts#L40-52"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let caCert = readFileSync(caCertPath);
let clientCert = readFileSync(clientCertPath);
let clientKey = readFileSync(clientKeyPath);
let nc = await connect({
url: url,
tls: {
ca: [caCert],
key: [clientKey],
cert: [clientCert]
}
});
</code></pre>
</div>
</div>

View File

@ -1,191 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="connect_tls_url_go" name="connect_tls_url" class="tab" checked>
<label for="connect_tls_url_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="connect_tls_url_java" name="connect_tls_url" class="tab">
<label for="connect_tls_url_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="connect_tls_url_js" name="connect_tls_url" class="tab">
<label for="connect_tls_url_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="connect_tls_url_py" name="connect_tls_url" class="tab">
<label for="connect_tls_url_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="connect_tls_url_ruby" name="connect_tls_url" class="tab">
<label for="connect_tls_url_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="connect_tls_url_ts" name="connect_tls_url" class="tab">
<label for="connect_tls_url_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="connect_tls_url_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/connect_tls_url/main.go#L10-21"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">nc, err := nats.Connect(&#34;localhost&#34;,
nats.Secure(),
nats.RootCAs(&#34;resources/certs/ca.pem&#34;)) // May need this if server is using self-signed certificate
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Do something with the connection
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_tls_url_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/ConnectTLSURL.java#L18-80"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">class SSLUtils2 {
public static String KEYSTORE_PATH = &#34;src/main/resources/keystore.jks&#34;;
public static String TRUSTSTORE_PATH = &#34;src/main/resources/cacerts&#34;;
public static String STORE_PASSWORD = &#34;password&#34;;
public static String KEY_PASSWORD = &#34;password&#34;;
public static String ALGORITHM = &#34;SunX509&#34;;
public static KeyStore loadKeystore(String path) throws Exception {
KeyStore store = KeyStore.getInstance(&#34;JKS&#34;);
BufferedInputStream in = new BufferedInputStream(new FileInputStream(path));
try {
store.load(in, STORE_PASSWORD.toCharArray());
} finally {
if (in != null) {
in.close();
}
}
return store;
}
public static KeyManager[] createTestKeyManagers() throws Exception {
KeyStore store = loadKeystore(KEYSTORE_PATH);
KeyManagerFactory factory = KeyManagerFactory.getInstance(ALGORITHM);
factory.init(store, KEY_PASSWORD.toCharArray());
return factory.getKeyManagers();
}
public static TrustManager[] createTestTrustManagers() throws Exception {
KeyStore store = loadKeystore(TRUSTSTORE_PATH);
TrustManagerFactory factory = TrustManagerFactory.getInstance(ALGORITHM);
factory.init(store);
return factory.getTrustManagers();
}
public static SSLContext createSSLContext() throws Exception {
SSLContext ctx = SSLContext.getInstance(Options.DEFAULT_SSL_PROTOCOL);
ctx.init(createTestKeyManagers(), createTestTrustManagers(), new SecureRandom());
return ctx;
}
}
public class ConnectTLSURL {
public static void main(String[] args) {
try {
SSLContext.setDefault(SSLUtils2.createSSLContext()); // Set the default context
Options options = new Options.Builder().
server(&#34;tls://localhost:4222&#34;). // Use the TLS protocol
build();
Connection nc = Nats.connect(options);
// Do something with the connection
nc.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_tls_url_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/tls_samples.js#L26-31"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let nc = NATS.connect({
url: &#34;tls://demo.nats.io:4443&#34;,
tls: true
});
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_tls_url_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/connect_tls_url.py#L1-37"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">import asyncio
import ssl
import certifi
from nats.aio.client import Client as NATS
from nats.aio.errors import ErrTimeout
async def run(loop):
nc = NATS()
# If using Python 3.7 in OS X and getting SSL errors, run first:
#
# /Applications/Python\ 3.7/Install\ Certificates.command
#
# Setting the tls as the scheme will use same defaults as `ssl.create_default_context()`
#
await nc.connect(&#34;tls://demo.nats.io:4443&#34;, loop=loop)
async def message_handler(msg):
subject = msg.subject
reply = msg.reply
data = msg.data.decode()
print(&#34;Received a message on &#39;{subject} {reply}&#39;: {data}&#34;.format(
subject=subject, reply=reply, data=data))
# Simple publisher and async subscriber via coroutine.
sid = await nc.subscribe(&#34;foo&#34;, cb=message_handler)
await nc.flush()
# Stop receiving after 2 messages.
await nc.auto_unsubscribe(sid, 2)
await nc.publish(&#34;foo&#34;, b&#39;Hello&#39;)
await nc.publish(&#34;foo&#34;, b&#39;World&#39;)
await nc.publish(&#34;foo&#34;, b&#39;!!!!!&#39;)
await asyncio.sleep(1, loop=loop)
await nc.close()
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_tls_url_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/connect_tls_url.rb#L3-19"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">EM.run do
# In order to use TLS with the Ruby NATS client, use the :tls option
# when customizing the connection with an empty block.
options = {
:servers =&gt; [
&#39;nats://demo.nats.io:4443&#39;,
],
:tls =&gt; {}
}
NATS.connect(options) do |nc|
puts :connected
end
end
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_tls_url_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/tls_samples.ts#L26-33"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// will throw an exception if connection fails
let nc = await connect({
url: &#34;tls://demo.nats.io:4443&#34;
});
nc.close();
</code></pre>
</div>
</div>

View File

@ -1,89 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="connect_token_go" name="connect_token" class="tab" checked>
<label for="connect_token_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="connect_token_java" name="connect_token" class="tab">
<label for="connect_token_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="connect_token_js" name="connect_token" class="tab">
<label for="connect_token_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="connect_token_py" name="connect_token" class="tab">
<label for="connect_token_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="connect_token_ruby" name="connect_token" class="tab">
<label for="connect_token_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="connect_token_ts" name="connect_token" class="tab">
<label for="connect_token_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="connect_token_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/connect_token/main.go#L10-20"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">// Set a token
nc, err := nats.Connect(&#34;localhost&#34;, nats.Token(&#34;mytoken&#34;))
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Do something with the connection
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_token_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/ConnectToken.java#L11-21"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Options options = new Options.Builder().
server(&#34;nats://localhost:4222&#34;).
token(&#34;mytoken&#34;). // Set a token
build();
Connection nc = Nats.connect(options);
// Do something with the connection
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_token_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/auth_examples.js#L81-83"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let nc = NATS.connect({url: `nats://127.0.0.1:${port}`, token: &#34;mytoken!&#34;});
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_token_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/connect_token.py#L6-13"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
await nc.connect(servers=[&#34;nats://mytoken@demo.nats.io:4222&#34;])
# Do something with the connection.
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_token_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/connect_token.rb#L3-7"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">NATS.start(token: &#34;deadbeef&#34;) do |nc|
puts &#34;Connected using token&#34;
end
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_token_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/auth_examples.ts#L58-60"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let nc = await connect({url: server.nats, token: &#34;mytoken&#34;});
</code></pre>
</div>
</div>

View File

@ -1,87 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="connect_token_url_go" name="connect_token_url" class="tab" checked>
<label for="connect_token_url_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="connect_token_url_java" name="connect_token_url" class="tab">
<label for="connect_token_url_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="connect_token_url_js" name="connect_token_url" class="tab">
<label for="connect_token_url_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="connect_token_url_py" name="connect_token_url" class="tab">
<label for="connect_token_url_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="connect_token_url_ruby" name="connect_token_url" class="tab">
<label for="connect_token_url_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="connect_token_url_ts" name="connect_token_url" class="tab">
<label for="connect_token_url_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="connect_token_url_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/connect_token_url/main.go#L10-20"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">// Token in URL
nc, err := nats.Connect(&#34;mytoken@localhost&#34;)
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Do something with the connection
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_token_url_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/ConnectTokenURL.java#L10-16"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Connection nc = Nats.connect(&#34;nats://mytoken@localhost:4222&#34;);//Token in URL
// Do something with the connection
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_token_url_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/auth_examples.js#L63-66"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let url = `nats://mytoken!@127.0.0.1:${port}`;
let nc = NATS.connect({url: url});
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_token_url_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/connect_token_url.py#L6-13"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
await nc.connect(servers=[&#34;nats://mytoken@demo.nats.io:4222&#34;])
# Do something with the connection.
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_token_url_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/connect_token_url.rb#L3-7"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">NATS.start(&#34;deadbeef@127.0.0.1:4222&#34;) do |nc|
puts &#34;Connected using token!&#34;
end
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_token_url_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/auth_examples.ts#L47-50"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let url = `nats://:mytoken!@127.0.0.1:${port}`;
let nc = await connect({url: url});
</code></pre>
</div>
</div>

View File

@ -1,108 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="connect_url_go" name="connect_url" class="tab" checked>
<label for="connect_url_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="connect_url_java" name="connect_url" class="tab">
<label for="connect_url_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="connect_url_js" name="connect_url" class="tab">
<label for="connect_url_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="connect_url_py" name="connect_url" class="tab">
<label for="connect_url_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="connect_url_ruby" name="connect_url" class="tab">
<label for="connect_url_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="connect_url_ts" name="connect_url" class="tab">
<label for="connect_url_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="connect_url_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/connect_url/main.go#L10-23"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">// If connecting to the default port, the URL can be simplified
// to just the hostname/IP.
// That is, the connect below is equivalent to:
// nats.Connect(&#34;nats://demo.nats.io:4222&#34;)
nc, err := nats.Connect(&#34;demo.nats.io&#34;)
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Do something with the connection
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_url_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/ConnectToServerURL.java#L10-16"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Connection nc = Nats.connect(&#34;nats://demo.nats.io:4222&#34;);
// Do something with the connection
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_url_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/connection_samples.js#L45-56"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let nc = NATS.connect(&#34;nats://demo.nats.io:4222&#34;);
nc.on(&#39;connect&#39;, (c) =&gt; {
// Do something with the connection
doSomething();
// When done close it
nc.close();
});
nc.on(&#39;error&#39;, (err) =&gt; {
failed(err);
});
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_url_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/connect_url.py#L5-13"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
await nc.connect(servers=[&#34;nats://demo.nats.io:4222&#34;])
# Do something with the connection
await nc.close()
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_url_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/connect_url.rb#L1-10"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">require &#39;nats/client&#39;
NATS.start(servers: [&#34;nats://demo.nats.io:4222&#34;]) do |nc|
# Do something with the connection
# Close the connection
nc.close
end
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_url_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/connection_samples.ts#L40-47"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// will throw an exception if connection fails
let nc = await connect(&#34;nats://demo.nats.io:4222&#34;);
// Do something with the connection
// Close the connection
nc.close();
</code></pre>
</div>
</div>

View File

@ -1,103 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="connect_userpass_go" name="connect_userpass" class="tab" checked>
<label for="connect_userpass_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="connect_userpass_java" name="connect_userpass" class="tab">
<label for="connect_userpass_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="connect_userpass_js" name="connect_userpass" class="tab">
<label for="connect_userpass_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="connect_userpass_py" name="connect_userpass" class="tab">
<label for="connect_userpass_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="connect_userpass_ruby" name="connect_userpass" class="tab">
<label for="connect_userpass_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="connect_userpass_ts" name="connect_userpass" class="tab">
<label for="connect_userpass_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="connect_userpass_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/connect_userpass/main.go#L10-20"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">// Set a user and plain text password
nc, err := nats.Connect(&#34;localhost&#34;, nats.UserInfo(&#34;myname&#34;, &#34;password&#34;))
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Do something with the connection
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_userpass_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/ConnectUserPassword.java#L11-21"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Options options = new Options.Builder().
server(&#34;nats://localhost:4222&#34;).
userInfo(&#34;myname&#34;,&#34;password&#34;). // Set a user and plain text password
build();
Connection nc = Nats.connect(options);
// Do something with the connection
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_userpass_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/auth_examples.js#L19-21"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let nc = NATS.connect({url: server.nats, user: &#34;myname&#34;, pass: &#34;password&#34;});
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_userpass_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/connect_userpass.py#L6-13"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
await nc.connect(servers=[&#34;nats://myname:password@demo.nats.io:4222&#34;])
# Do something with the connection.
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_userpass_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/connect_userpass.rb#L1-19"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">require &#39;nats/client&#39;
NATS.start(servers:[&#34;nats://myname:password@127.0.0.1:4222&#34;], name: &#34;my-connection&#34;) do |nc|
nc.on_error do |e|
puts &#34;Error: #{e}&#34;
end
nc.on_reconnect do
puts &#34;Got reconnected to #{nc.connected_server}&#34;
end
nc.on_disconnect do |reason|
puts &#34;Got disconnected! #{reason}&#34;
end
nc.close
end
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_userpass_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/auth_examples.ts#L21-23"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let nc = await connect({url: server.nats, user: &#34;myname&#34;, pass: &#34;password&#34;});
</code></pre>
</div>
</div>

View File

@ -1,101 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="connect_userpass_url_go" name="connect_userpass_url" class="tab" checked>
<label for="connect_userpass_url_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="connect_userpass_url_java" name="connect_userpass_url" class="tab">
<label for="connect_userpass_url_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="connect_userpass_url_js" name="connect_userpass_url" class="tab">
<label for="connect_userpass_url_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="connect_userpass_url_py" name="connect_userpass_url" class="tab">
<label for="connect_userpass_url_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="connect_userpass_url_ruby" name="connect_userpass_url" class="tab">
<label for="connect_userpass_url_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="connect_userpass_url_ts" name="connect_userpass_url" class="tab">
<label for="connect_userpass_url_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="connect_userpass_url_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/connect_userpass_url/main.go#L10-20"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">// Set a user and plain text password
nc, err := nats.Connect(&#34;myname:password@localhost&#34;)
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Do something with the connection
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_userpass_url_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/ConnectUserPasswordURL.java#L10-16"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Connection nc = Nats.connect(&#34;nats://myname:password@localhost:4222&#34;);
// Do something with the connection
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_userpass_url_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/auth_examples.js#L40-43"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let url = `nats://myname:password@127.0.0.1:${port}`;
let nc = NATS.connect(url);
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_userpass_url_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/connect_userpass_url.py#L6-13"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
await nc.connect(servers=[&#34;nats://myname:password@demo.nats.io:4222&#34;])
# Do something with the connection.
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_userpass_url_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/connect_userpass_url.rb#L1-19"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">require &#39;nats/client&#39;
NATS.start(servers:[&#34;nats://myname:password@127.0.0.1:4222&#34;], name: &#34;my-connection&#34;) do |nc|
nc.on_error do |e|
puts &#34;Error: #{e}&#34;
end
nc.on_reconnect do
puts &#34;Got reconnected to #{nc.connected_server}&#34;
end
nc.on_disconnect do |reason|
puts &#34;Got disconnected! #{reason}&#34;
end
nc.close
end
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_userpass_url_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/auth_examples.ts#L34-37"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let url = `nats://myname:password@127.0.0.1:${port}`;
let nc = await connect({url: url});
</code></pre>
</div>
</div>

View File

@ -1,112 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="connect_verbose_go" name="connect_verbose" class="tab" checked>
<label for="connect_verbose_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="connect_verbose_java" name="connect_verbose" class="tab">
<label for="connect_verbose_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="connect_verbose_js" name="connect_verbose" class="tab">
<label for="connect_verbose_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="connect_verbose_py" name="connect_verbose" class="tab">
<label for="connect_verbose_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="connect_verbose_ruby" name="connect_verbose" class="tab">
<label for="connect_verbose_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="connect_verbose_ts" name="connect_verbose" class="tab">
<label for="connect_verbose_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="connect_verbose_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/connect_verbose/main.go#L10-23"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">opts := nats.GetDefaultOptions()
opts.Url = &#34;demo.nats.io&#34;
// Turn on Verbose
opts.Verbose = true
nc, err := opts.Connect()
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Do something with the connection
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_verbose_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/ConnectVerbose.java#L11-21"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Options options = new Options.Builder().
server(&#34;nats://demo.nats.io:4222&#34;).
verbose(). // Turn on verbose
build();
Connection nc = Nats.connect(options);
// Do something with the connection
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_verbose_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/options_samples.js#L56-62"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let nc = NATS.connect({
url: &#34;nats://demo.nats.io:4222&#34;,
verbose: true
});
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_verbose_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/connect_verbose.py#L6-13"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
await nc.connect(servers=[&#34;nats://demo.nats.io:4222&#34;], verbose=True)
# Do something with the connection.
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_verbose_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/connect_verbose.rb#L1-15"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">require &#39;nats/client&#39;
NATS.start(verbose: true) do |nc|
nc.on_reconnect do
puts &#34;Got reconnected to #{nc.connected_server}&#34;
end
nc.on_disconnect do |reason|
puts &#34;Got disconnected! #{reason}&#34;
end
nc.close
end
</code></pre>
</div>
<div class="tab__content">
<pre id="connect_verbose_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/options_samples.ts#L42-50"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// will throw an exception if connection fails
let nc = await connect({
url: &#34;nats://demo.nats.io:4222&#34;,
verbose: true
});
nc.close();
</code></pre>
</div>
</div>

View File

@ -1,178 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="connection_listener_go" name="connection_listener" class="tab" checked>
<label for="connection_listener_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="connection_listener_java" name="connection_listener" class="tab">
<label for="connection_listener_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="connection_listener_js" name="connection_listener" class="tab">
<label for="connection_listener_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="connection_listener_py" name="connection_listener" class="tab">
<label for="connection_listener_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="connection_listener_ruby" name="connection_listener" class="tab">
<label for="connection_listener_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="connection_listener_ts" name="connection_listener" class="tab">
<label for="connection_listener_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="connection_listener_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/notapplicable.txt#L5-14"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">// There is not a single listener for connection events in the NATS Go Client.
// Instead, you can set individual event handlers using:
DisconnectHandler(cb ConnHandler)
ReconnectHandler(cb ConnHandler)
ClosedHandler(cb ConnHandler)
DiscoveredServersHandler(cb ConnHandler)
ErrorHandler(cb ErrHandler)
</code></pre>
</div>
<div class="tab__content">
<pre id="connection_listener_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/SetConnectionListener.java#L8-33"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">class MyConnectionListener implements ConnectionListener {
public void connectionEvent(Connection natsConnection, Events event) {
System.out.println(&#34;Connection event - &#34;&#43;event);
}
}
public class SetConnectionListener {
public static void main(String[] args) {
try {
Options options = new Options.Builder().
server(&#34;nats://demo.nats.io:4222&#34;).
connectionListener(new MyConnectionListener()). // Set the listener
build();
Connection nc = Nats.connect(options);
// Do something with the connection
nc.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
</code></pre>
</div>
<div class="tab__content">
<pre id="connection_listener_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/event_samples.js#L11-41"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let nc = NATS.connect(&#34;nats://demo.nats.io:4222&#34;);
nc.on(&#39;error&#39;, (err) =&gt; {
t.log(&#39;error&#39;, err);
});
nc.on(&#39;connect&#39;, () =&gt; {
t.log(&#39;client connected&#39;);
});
nc.on(&#39;disconnect&#39;, () =&gt; {
t.log(&#39;client disconnected&#39;);
});
nc.on(&#39;reconnecting&#39;, () =&gt; {
t.log(&#39;client reconnecting&#39;);
});
nc.on(&#39;reconnect&#39;, () =&gt; {
t.log(&#39;client reconnected&#39;);
});
nc.on(&#39;close&#39;, () =&gt; {
t.log(&#39;client closed&#39;);
});
nc.on(&#39;permission_error&#39;, (err) =&gt; {
t.log(&#39;permission_error&#39;, err);
});
</code></pre>
</div>
<div class="tab__content">
<pre id="connection_listener_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/notapplicable.txt#L17-42"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python"># Asyncio NATS client can be defined a number of event callbacks
async def disconnected_cb():
print(&#34;Got disconnected!&#34;)
async def reconnected_cb():
# See who we are connected to on reconnect.
print(&#34;Got reconnected to {url}&#34;.format(url=nc.connected_url.netloc))
async def error_cb(e):
print(&#34;There was an error: {}&#34;.format(e))
async def closed_cb():
print(&#34;Connection is closed&#34;)
# Setup callbacks to be notified on disconnects and reconnects
options[&#34;disconnected_cb&#34;] = disconnected_cb
options[&#34;reconnected_cb&#34;] = reconnected_cb
# Setup callbacks to be notified when there is an error
# or connection is closed.
options[&#34;error_cb&#34;] = error_cb
options[&#34;closed_cb&#34;] = closed_cb
await nc.connect(**options)
</code></pre>
</div>
<div class="tab__content">
<pre id="connection_listener_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/notapplicable.txt#L29-44"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby"># There is not a single listener for connection events in the Ruby NATS Client.
# Instead, you can set individual event handlers using:
NATS.on_disconnect do
end
NATS.on_reconnect do
end
NATS.on_close do
end
NATS.on_error do
end
</code></pre>
</div>
<div class="tab__content">
<pre id="connection_listener_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/event_samples.ts#L7-27"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// connect will happen once - the first connect
nc.on(&#39;connect&#39;, (nc) =&gt; {
// nc is the connection that connected
t.log(&#39;client connected&#39;);
});
nc.on(&#39;disconnect&#39;, (url) =&gt; {
// nc is the connection that reconnected
t.log(&#39;disconnected from&#39;, url);
});
nc.on(&#39;reconnecting&#39;, (url) =&gt; {
t.log(&#39;reconnecting to&#39;, url);
});
nc.on(&#39;reconnect&#39;, (nc, url) =&gt; {
// nc is the connection that reconnected
t.log(&#39;reconnected to&#39;, url);
});
</code></pre>
</div>
</div>

View File

@ -1,79 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="control_2k_go" name="control_2k" class="tab" checked>
<label for="control_2k_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="control_2k_java" name="control_2k" class="tab">
<label for="control_2k_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="control_2k_js" name="control_2k" class="tab">
<label for="control_2k_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="control_2k_py" name="control_2k" class="tab">
<label for="control_2k_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="control_2k_ruby" name="control_2k" class="tab">
<label for="control_2k_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="control_2k_ts" name="control_2k" class="tab">
<label for="control_2k_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="control_2k_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/notapplicable.txt#L1-3"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">// This does not apply to the NATS Go Client
</code></pre>
</div>
<div class="tab__content">
<pre id="control_2k_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/ConnectControl2k.java#L11-21"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Options options = new Options.Builder().
server(&#34;nats://demo.nats.io:4222&#34;).
maxControlLine(2 * 1024). // Set the max control line to 2k
build();
Connection nc = Nats.connect(options);
// Do something with the connection
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="control_2k_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/options_samples.js#L90-97"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// set this option before creating a connection
NATS.MAX_CONTROL_LINE_SIZE = 1024*2;
let nc = NATS.connect({
url: &#34;nats://demo.nats.io:4222&#34;
});
</code></pre>
</div>
<div class="tab__content">
<pre id="control_2k_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/notapplicable.txt#L5-7"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python"># Asyncio NATS client does not allow custom control lines
</code></pre>
</div>
<div class="tab__content">
<pre id="control_2k_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/notapplicable.txt#L5-7"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby"># There is no need to customize this in the Ruby NATS client.
</code></pre>
</div>
<div class="tab__content">
<pre id="control_2k_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/options_samples.ts#L68-70"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// control line size is not configurable on ts-nats
</code></pre>
</div>
</div>

View File

@ -1,185 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="drain_conn_go" name="drain_conn" class="tab" checked>
<label for="drain_conn_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="drain_conn_java" name="drain_conn" class="tab">
<label for="drain_conn_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="drain_conn_py" name="drain_conn" class="tab">
<label for="drain_conn_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="drain_conn_ruby" name="drain_conn" class="tab">
<label for="drain_conn_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="drain_conn_ts" name="drain_conn" class="tab">
<label for="drain_conn_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="drain_conn_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/drain_conn/main.go#L12-61"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">wg := sync.WaitGroup{}
wg.Add(1)
errCh := make(chan error, 1)
// To simulate a timeout, you would set the DrainTimeout()
// to a value less than the time spent in the message callback,
// so say: nats.DrainTimeout(10*time.Millisecond).
nc, err := nats.Connect(&#34;demo.nats.io&#34;,
nats.DrainTimeout(10*time.Second),
nats.ErrorHandler(func(_ *nats.Conn, _ *nats.Subscription, err error) {
errCh &lt;- err
}),
nats.ClosedHandler(func(_ *nats.Conn) {
wg.Done()
}))
if err != nil {
log.Fatal(err)
}
// Subscribe, but add some delay while processing.
if _, err := nc.Subscribe(&#34;foo&#34;, func(_ *nats.Msg) {
time.Sleep(200 * time.Millisecond)
}); err != nil {
log.Fatal(err)
}
// Publish a message
if err := nc.Publish(&#34;foo&#34;, []byte(&#34;hello&#34;)); err != nil {
log.Fatal(err)
}
// Drain the connection, which will close it when done.
if err := nc.Drain(); err != nil {
log.Fatal(err)
}
// Wait for the connection to be closed.
wg.Wait()
// Check if there was an error
select {
case e := &lt;-errCh:
log.Fatal(e)
default:
}
</code></pre>
</div>
<div class="tab__content">
<pre id="drain_conn_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/DrainConn.java#L16-40"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Connection nc = Nats.connect(&#34;nats://demo.nats.io:4222&#34;);
// Use a latch to wait for a message to arrive
CountDownLatch latch = new CountDownLatch(1);
// Create a dispatcher and inline message handler
Dispatcher d = nc.createDispatcher((msg) -&gt; {
String str = new String(msg.getData(), StandardCharsets.UTF_8);
System.out.println(str);
latch.countDown();
});
// Subscribe
d.subscribe(&#34;updates&#34;);
// Wait for a message to come in
latch.await();
// Drain the connection, which will close it
CompletableFuture&lt;Boolean&gt; drained = nc.drain(Duration.ofSeconds(10));
// Wait for the drain to complete
drained.get();
</code></pre>
</div>
<div class="tab__content">
<pre id="drain_conn_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/drain_conn.py#L1-34"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">import asyncio
from nats.aio.client import Client as NATS
async def example(loop):
nc = NATS()
await nc.connect(&#34;nats://127.0.0.1:4222&#34;, loop=loop)
async def handler(msg):
print(&#34;[Received] &#34;, msg)
await nc.publish(msg.reply, b&#39;I can help&#39;)
# Can check whether client is in draining state
if nc.is_draining:
print(&#34;Connection is draining&#34;)
await nc.subscribe(&#34;help&#34;, &#34;workers&#34;, cb=handler)
await nc.flush()
requests = []
for i in range(0, 10):
request = nc.request(&#34;help&#34;, b&#39;help!&#39;, timeout=1)
requests.append(request)
# Wait for all the responses
responses = []
responses = await asyncio.gather(*requests)
# Gracefully close the connection.
await nc.drain()
print(&#34;Received {} responses&#34;.format(len(responses)))
</code></pre>
</div>
<div class="tab__content">
<pre id="drain_conn_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/drain_conn.rb#L3-26"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">NATS.start(drain_timeout: 1) do |nc|
NATS.subscribe(&#39;foo&#39;, queue: &#34;workers&#34;) do |msg, reply, sub|
nc.publish(reply, &#34;ACK:#{msg}&#34;)
end
NATS.subscribe(&#39;bar&#39;, queue: &#34;workers&#34;) do |msg, reply, sub|
nc.publish(reply, &#34;ACK:#{msg}&#34;)
end
NATS.subscribe(&#39;quux&#39;, queue: &#34;workers&#34;) do |msg, reply, sub|
nc.publish(reply, &#34;ACK:#{msg}&#34;)
end
EM.add_timer(2) do
next if NATS.draining?
# Drain gracefully closes the connection.
NATS.drain do
puts &#34;Done draining. Connection is closed.&#34;
end
end
end
</code></pre>
</div>
<div class="tab__content">
<pre id="drain_conn_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/connection_samples.ts#L73-83"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let sub = await nc.subscribe(&#39;updates&#39;, (err, msg) =&gt; {
t.log(&#39;worker got message&#39;, msg.data);
}, {queue: &#34;workers&#34;});
// [end drain_sub]
nc.flush();
await nc.drain();
// client must close when the connection drain resolves
nc.close();
</code></pre>
</div>
</div>

View File

@ -1,166 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="drain_sub_go" name="drain_sub" class="tab" checked>
<label for="drain_sub_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="drain_sub_java" name="drain_sub" class="tab">
<label for="drain_sub_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="drain_sub_js" name="drain_sub" class="tab">
<label for="drain_sub_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="drain_sub_py" name="drain_sub" class="tab">
<label for="drain_sub_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="drain_sub_ruby" name="drain_sub" class="tab">
<label for="drain_sub_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="drain_sub_ts" name="drain_sub" class="tab">
<label for="drain_sub_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="drain_sub_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/drain_sub/main.go#L13-67"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">
nc, err := nats.Connect(&#34;demo.nats.io&#34;)
if err != nil {
log.Fatal(err)
}
defer nc.Close()
done := sync.WaitGroup{}
done.Add(1)
count := 0
errCh := make(chan error, 1)
msgAfterDrain := &#34;not this one&#34;
// This callback will process each message slowly
sub, err := nc.Subscribe(&#34;updates&#34;, func(m *nats.Msg) {
if string(m.Data) == msgAfterDrain {
errCh &lt;- fmt.Errorf(&#34;Should not have received this message&#34;)
return
}
time.Sleep(100 * time.Millisecond)
count&#43;&#43;
if count == 2 {
done.Done()
}
})
// Send 2 messages
for i := 0; i &lt; 2; i&#43;&#43; {
nc.Publish(&#34;updates&#34;, []byte(&#34;hello&#34;))
}
// Call Drain on the subscription. It unsubscribes but
// wait for all pending messages to be processed.
if err := sub.Drain(); err != nil {
log.Fatal(err)
}
// Send one more message, this message should not be received
nc.Publish(&#34;updates&#34;, []byte(msgAfterDrain))
// Wait for the subscription to have processed the 2 messages.
done.Wait()
// Now check that the 3rd message was not received
select {
case e := &lt;-errCh:
log.Fatal(e)
case &lt;-time.After(200 * time.Millisecond):
// OK!
}
</code></pre>
</div>
<div class="tab__content">
<pre id="drain_sub_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/DrainSub.java#L16-43"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Connection nc = Nats.connect(&#34;nats://demo.nats.io:4222&#34;);
// Use a latch to wait for a message to arrive
CountDownLatch latch = new CountDownLatch(1);
// Create a dispatcher and inline message handler
Dispatcher d = nc.createDispatcher((msg) -&gt; {
String str = new String(msg.getData(), StandardCharsets.UTF_8);
System.out.println(str);
latch.countDown();
});
// Subscribe
d.subscribe(&#34;updates&#34;);
// Wait for a message to come in
latch.await();
// Messages that have arrived will be processed
CompletableFuture&lt;Boolean&gt; drained = d.drain(Duration.ofSeconds(10));
// Wait for the drain to complete
drained.get();
// Close the connection
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="drain_sub_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/subscriber_samples.js#L232-234"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// Drain subscription is not supported.
</code></pre>
</div>
<div class="tab__content">
<pre id="drain_sub_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/drain_sub.py#L1-24"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">import asyncio
from nats.aio.client import Client as NATS
async def example(loop):
nc = NATS()
await nc.connect(&#34;nats://127.0.0.1:4222&#34;, loop=loop)
async def handler(msg):
print(&#34;[Received] &#34;, msg)
await nc.publish(msg.reply, b&#39;I can help&#39;)
# Can check whether client is in draining state
if nc.is_draining:
print(&#34;Connection is draining&#34;)
sid = await nc.subscribe(&#34;help&#34;, &#34;workers&#34;, cb=handler)
await nc.flush()
# Gracefully unsubscribe the subscription
await nc.drain(sid)
</code></pre>
</div>
<div class="tab__content">
<pre id="drain_sub_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/notapplicable.txt#L9-11"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby"># There is currently no API to drain a single subscription, the whole connection can be drained though via NATS.drain
</code></pre>
</div>
<div class="tab__content">
<pre id="drain_sub_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/subscriber_samples.ts#L208-212"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let sub = await nc.subscribe(&#39;updates&#39;, (err, msg) =&gt; {
t.log(&#39;worker got message&#39;, msg.data);
}, {queue: &#34;workers&#34;});
</code></pre>
</div>
</div>

View File

@ -1,139 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="error_listener_go" name="error_listener" class="tab" checked>
<label for="error_listener_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="error_listener_java" name="error_listener" class="tab">
<label for="error_listener_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="error_listener_js" name="error_listener" class="tab">
<label for="error_listener_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="error_listener_py" name="error_listener" class="tab">
<label for="error_listener_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="error_listener_ruby" name="error_listener" class="tab">
<label for="error_listener_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="error_listener_ts" name="error_listener" class="tab">
<label for="error_listener_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="error_listener_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/error_listener/main.go#L10-23"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">// Set the callback that will be invoked when an asynchronous error occurs.
nc, err := nats.Connect(&#34;demo.nats.io&#34;,
nats.ErrorHandler(func(nc *nats.Conn, sub *nats.Subscription, err error) {
log.Printf(&#34;Error: %v&#34;, err)
}))
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Do something with the connection
</code></pre>
</div>
<div class="tab__content">
<pre id="error_listener_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/SetErrorListener.java#L9-43"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">class MyErrorListener implements ErrorListener {
public void errorOccurred(Connection conn, String error)
{
System.out.println(&#34;The server notificed the client with: &#34;&#43;error);
}
public void exceptionOccurred(Connection conn, Exception exp) {
System.out.println(&#34;The connection handled an exception: &#34;&#43;exp.getLocalizedMessage());
}
public void slowConsumerDetected(Connection conn, Consumer consumer) {
System.out.println(&#34;A slow consumer was detected.&#34;);
}
}
public class SetErrorListener {
public static void main(String[] args) {
try {
Options options = new Options.Builder().
server(&#34;nats://demo.nats.io:4222&#34;).
errorListener(new MyErrorListener()). // Set the listener
build();
Connection nc = Nats.connect(options);
// Do something with the connection
nc.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
</code></pre>
</div>
<div class="tab__content">
<pre id="error_listener_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/event_samples.js#L76-84"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let nc = NATS.connect(&#34;nats://demo.nats.io:4222&#34;);
// on node you *must* register an error listener. If not registered
// the library emits an &#39;error&#39; event, the node process will exit.
nc.on(&#39;error&#39;, (err) =&gt; {
t.log(&#39;client got an error:&#39;, err);
});
</code></pre>
</div>
<div class="tab__content">
<pre id="error_listener_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/error_listener.py#L6-20"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
async def error_cb(e):
print(&#34;Error: &#34;, e)
await nc.connect(
servers=[&#34;nats://demo.nats.io:4222&#34;],
reconnect_time_wait=10,
error_cb=error_cb,
)
# Do something with the connection.
</code></pre>
</div>
<div class="tab__content">
<pre id="error_listener_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/error_listener.rb#L1-11"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">require &#39;nats/client&#39;
NATS.start(servers:[&#34;nats://demo.nats.io:4222&#34;]) do |nc|
nc.on_error do |e|
puts &#34;Error: #{e}&#34;
end
nc.close
end
</code></pre>
</div>
<div class="tab__content">
<pre id="error_listener_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/event_samples.ts#L48-54"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// on node you *must* register an error listener. If not registered
// the library emits an &#39;error&#39; event, the node process will exit.
nc.on(&#39;error&#39;, (err) =&gt; {
t.log(&#39;client got an out of band error:&#39;, err);
});
</code></pre>
</div>
</div>

View File

@ -1,132 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="flush_go" name="flush" class="tab" checked>
<label for="flush_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="flush_java" name="flush" class="tab">
<label for="flush_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="flush_js" name="flush" class="tab">
<label for="flush_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="flush_py" name="flush" class="tab">
<label for="flush_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="flush_ruby" name="flush" class="tab">
<label for="flush_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="flush_ts" name="flush" class="tab">
<label for="flush_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="flush_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/flush/main.go#L11-26"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">nc, err := nats.Connect(&#34;demo.nats.io&#34;)
if err != nil {
log.Fatal(err)
}
defer nc.Close()
if err := nc.Publish(&#34;updates&#34;, []byte(&#34;All is Well&#34;)); err != nil {
log.Fatal(err)
}
// Sends a PING and wait for a PONG from the server, up to the given timeout.
// This gives guarantee that the server has processed above message.
if err := nc.FlushTimeout(time.Second); err != nil {
log.Fatal(err)
}
</code></pre>
</div>
<div class="tab__content">
<pre id="flush_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/Flush.java#L13-20"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Connection nc = Nats.connect(&#34;nats://demo.nats.io:4222&#34;);
nc.publish(&#34;updates&#34;, &#34;All is Well&#34;.getBytes(StandardCharsets.UTF_8));
nc.flush(Duration.ofSeconds(1)); // Flush the message queue
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="flush_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/publisher_samples.js#L93-103"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let nc = NATS.connect({url: &#34;nats://demo.nats.io:4222&#34;});
let start = Date.now();
nc.flush(() =&gt; {
t.log(&#39;round trip completed in&#39;, Date.now() - start, &#39;ms&#39;);
});
nc.publish(&#39;foo&#39;);
// function in flush is optional
nc.flush();
</code></pre>
</div>
<div class="tab__content">
<pre id="flush_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/flush.py#L6-17"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
await nc.connect(servers=[&#34;nats://demo.nats.io:4222&#34;])
await nc.publish(&#34;updates&#34;, b&#39;All is Well&#39;)
# Sends a PING and wait for a PONG from the server, up to the given timeout.
# This gives guarantee that the server has processed above message.
await nc.flush(timeout=1)
</code></pre>
</div>
<div class="tab__content">
<pre id="flush_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/flush.rb#L1-18"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">require &#39;nats/client&#39;
require &#39;fiber&#39;
NATS.start(servers:[&#34;nats://127.0.0.1:4222&#34;]) do |nc|
nc.subscribe(&#34;updates&#34;) do |msg|
puts msg
end
nc.publish(&#34;updates&#34;, &#34;All is Well&#34;)
nc.flush do
# Sends a PING and wait for a PONG from the server, up to the given timeout.
# This gives guarantee that the server has processed above message at this point.
end
end
</code></pre>
</div>
<div class="tab__content">
<pre id="flush_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/publisher_samples.ts#L90-108"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let nc = await connect({
url: &#34;nats://demo.nats.io:4222&#34;
});
// you can use flush to trigger a function in your
// application once the round-trip to the server finishes
let start = Date.now();
nc.flush(() =&gt; {
t.log(&#39;round trip completed in&#39;, Date.now() - start, &#39;ms&#39;);
});
nc.publish(&#39;foo&#39;);
// another way, simply wait for the promise to resolve
await nc.flush();
nc.close();
</code></pre>
</div>
</div>

View File

@ -1,115 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="max_payload_go" name="max_payload" class="tab" checked>
<label for="max_payload_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="max_payload_java" name="max_payload" class="tab">
<label for="max_payload_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="max_payload_js" name="max_payload" class="tab">
<label for="max_payload_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="max_payload_py" name="max_payload" class="tab">
<label for="max_payload_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="max_payload_ruby" name="max_payload" class="tab">
<label for="max_payload_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="max_payload_ts" name="max_payload" class="tab">
<label for="max_payload_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="max_payload_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/max_payload/main.go#L10-22"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">nc, err := nats.Connect(&#34;demo.nats.io&#34;)
if err != nil {
log.Fatal(err)
}
defer nc.Close()
mp := nc.MaxPayload()
log.Printf(&#34;Maximum payload is %v bytes&#34;, mp)
// Do something with the max payload
</code></pre>
</div>
<div class="tab__content">
<pre id="max_payload_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/GetMaxPayload.java#L10-17"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Connection nc = Nats.connect(&#34;nats://demo.nats.io:4222&#34;);
long max = nc.getMaxPayload();
// Do something with the max payload
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="max_payload_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/event_samples.js#L128-139"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let nc = NATS.connect(&#34;nats://demo.nats.io:4222&#34;);
// on node you *must* register an error listener. If not registered
// the library emits an &#39;error&#39; event, the node process will exit.
nc.on(&#39;error&#39;, (err) =&gt; {
t.log(&#39;client got an error:&#39;, err);
});
nc.on(&#39;connect&#39;, () =&gt; {
t.log(nc.info.max_payload);
});
</code></pre>
</div>
<div class="tab__content">
<pre id="max_payload_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/max_payload.py#L6-15"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
await nc.connect(servers=[&#34;nats://demo.nats.io:4222&#34;])
print(&#34;Maximum payload is %d bytes&#34; % nc.max_payload)
# Do something with the max payload.
</code></pre>
</div>
<div class="tab__content">
<pre id="max_payload_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/max_payload.rb#L1-16"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">require &#39;nats/client&#39;
NATS.start(max_outstanding_pings: 5) do |nc|
nc.on_reconnect do
puts &#34;Got reconnected to #{nc.connected_server}&#34;
end
nc.on_disconnect do |reason|
puts &#34;Got disconnected! #{reason}&#34;
end
# Do something with the max_payload
puts &#34;Maximum Payload is #{nc.server_info[:max_payload]} bytes&#34;
end
</code></pre>
</div>
<div class="tab__content">
<pre id="max_payload_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/event_samples.ts#L76-83"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// connect will happen once - the first connect
nc.on(&#39;connect&#39;, (nc: Client, url: string, options: ServerInfo) =&gt; {
// nc is the connection that connected
t.log(&#39;client connected to&#39;, url);
t.log(&#39;max_payload&#39;, options.max_payload);
});
</code></pre>
</div>
</div>

View File

@ -1,105 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="no_echo_go" name="no_echo" class="tab" checked>
<label for="no_echo_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="no_echo_java" name="no_echo" class="tab">
<label for="no_echo_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="no_echo_js" name="no_echo" class="tab">
<label for="no_echo_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="no_echo_py" name="no_echo" class="tab">
<label for="no_echo_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="no_echo_ruby" name="no_echo" class="tab">
<label for="no_echo_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="no_echo_ts" name="no_echo" class="tab">
<label for="no_echo_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="no_echo_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/no_echo/main.go#L10-20"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">// Turn off echo
nc, err := nats.Connect(&#34;demo.nats.io&#34;, nats.NoEcho())
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Do something with the connection
</code></pre>
</div>
<div class="tab__content">
<pre id="no_echo_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/ConnectNoEcho.java#L11-21"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Options options = new Options.Builder().
server(&#34;nats://demo.nats.io:4222&#34;).
noEcho(). // Turn off echo
build();
Connection nc = Nats.connect(options);
// Do something with the connection
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="no_echo_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/subscriber_samples.js#L239-241"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// no_echo is not supported.
</code></pre>
</div>
<div class="tab__content">
<pre id="no_echo_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/no_echo.py#L5-27"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">ncA = NATS()
ncB = NATS()
await ncA.connect(no_echo=True)
await ncB.connect()
async def handler(msg):
# Messages sent by `ncA&#39; will not be received.
print(&#34;[Received] &#34;, msg)
await ncA.subscribe(&#34;greetings&#34;, cb=handler)
await ncA.flush()
await ncA.publish(&#34;greetings&#34;, b&#39;Hello World!&#39;)
await ncB.publish(&#34;greetings&#34;, b&#39;Hello World!&#39;)
# Do something with the connection
await asyncio.sleep(1)
await ncA.drain()
await ncB.drain()
</code></pre>
</div>
<div class="tab__content">
<pre id="no_echo_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/no_echo.rb#L3-7"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">NATS.start(&#34;nats://demo.nats.io:4222&#34;, no_echo: true) do |nc|
# ...
end
</code></pre>
</div>
<div class="tab__content">
<pre id="no_echo_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/subscriber_samples.ts#L222-225"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let nc = await connect({
url: &#34;nats://demo.nats.io:4222&#34;, noEcho: true});
</code></pre>
</div>
</div>

View File

@ -1,111 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="ping_20s_go" name="ping_20s" class="tab" checked>
<label for="ping_20s_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="ping_20s_java" name="ping_20s" class="tab">
<label for="ping_20s_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="ping_20s_js" name="ping_20s" class="tab">
<label for="ping_20s_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="ping_20s_py" name="ping_20s" class="tab">
<label for="ping_20s_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="ping_20s_ruby" name="ping_20s" class="tab">
<label for="ping_20s_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="ping_20s_ts" name="ping_20s" class="tab">
<label for="ping_20s_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="ping_20s_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/ping_20s/main.go#L11-21"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">// Set Ping Interval to 20 seconds
nc, err := nats.Connect(&#34;demo.nats.io&#34;, nats.PingInterval(20*time.Second))
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Do something with the connection
</code></pre>
</div>
<div class="tab__content">
<pre id="ping_20s_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/ConnectPingTwenty.java#L13-23"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Options options = new Options.Builder().
server(&#34;nats://demo.nats.io:4222&#34;).
pingInterval(Duration.ofSeconds(20)). // Set Ping Interval
build();
Connection nc = Nats.connect(options);
// Do something with the connection
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="ping_20s_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/options_samples.js#L7-12"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let nc = NATS.connect({
pingInterval: 20*1000, //20s
url: &#34;nats://demo.nats.io:4222&#34;
});
</code></pre>
</div>
<div class="tab__content">
<pre id="ping_20s_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/ping_20s.py#L6-17"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
await nc.connect(
servers=[&#34;nats://demo.nats.io:4222&#34;],
# Set Ping Interval to 20 seconds
ping_interval=20,
)
# Do something with the connection.
</code></pre>
</div>
<div class="tab__content">
<pre id="ping_20s_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/ping_20s.rb#L1-15"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">require &#39;nats/client&#39;
NATS.start(ping_interval: 20) do |nc|
nc.on_reconnect do
puts &#34;Got reconnected to #{nc.connected_server}&#34;
end
nc.on_disconnect do |reason|
puts &#34;Got disconnected! #{reason}&#34;
end
# Do something with the connection
end
</code></pre>
</div>
<div class="tab__content">
<pre id="ping_20s_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/options_samples.ts#L5-12"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// will throw an exception if connection fails
let nc = await connect({
pingInterval: 20*2000, //20s
url: &#34;nats://demo.nats.io:4222&#34;
});
nc.close();
</code></pre>
</div>
</div>

View File

@ -1,118 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="ping_5_go" name="ping_5" class="tab" checked>
<label for="ping_5_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="ping_5_java" name="ping_5" class="tab">
<label for="ping_5_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="ping_5_js" name="ping_5" class="tab">
<label for="ping_5_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="ping_5_py" name="ping_5" class="tab">
<label for="ping_5_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="ping_5_ruby" name="ping_5" class="tab">
<label for="ping_5_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="ping_5_ts" name="ping_5" class="tab">
<label for="ping_5_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="ping_5_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/ping_5/main.go#L10-25"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">opts := nats.GetDefaultOptions()
opts.Url = &#34;demo.nats.io&#34;
// Set maximum number of PINGs out without getting a PONG back
// before the connection will be disconnected as a stale connection.
opts.MaxPingsOut = 5
nc, err := opts.Connect()
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Do something with the connection
</code></pre>
</div>
<div class="tab__content">
<pre id="ping_5_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/ConnectMaxPingFive.java#L11-21"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Options options = new Options.Builder().
server(&#34;nats://demo.nats.io:4222&#34;).
maxPingsOut(5). // Set max pings in flight
build();
Connection nc = Nats.connect(options);
// Do something with the connection
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="ping_5_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/options_samples.js#L23-28"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let nc = NATS.connect({
maxPingOut: 5,
url: &#34;nats://demo.nats.io:4222&#34;
});
</code></pre>
</div>
<div class="tab__content">
<pre id="ping_5_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/ping_5.py#L6-19"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
await nc.connect(
servers=[&#34;nats://demo.nats.io:4222&#34;],
# Set maximum number of PINGs out without getting a PONG back
# before the connection will be disconnected as a stale connection.
max_outstanding_pings=5,
ping_interval=1,
)
# Do something with the connection.
</code></pre>
</div>
<div class="tab__content">
<pre id="ping_5_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/ping_5s.rb#L1-15"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">require &#39;nats/client&#39;
NATS.start(max_outstanding_pings: 5) do |nc|
nc.on_reconnect do
puts &#34;Got reconnected to #{nc.connected_server}&#34;
end
nc.on_disconnect do |reason|
puts &#34;Got disconnected! #{reason}&#34;
end
# Do something with the connection
end
</code></pre>
</div>
<div class="tab__content">
<pre id="ping_5_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/options_samples.ts#L17-24"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// will throw an exception if connection fails
let nc = await connect({
maxPingOut: 5,
url: &#34;nats://demo.nats.io:4222&#34;
});
nc.close();
</code></pre>
</div>
</div>

View File

@ -1,101 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="publish_bytes_go" name="publish_bytes" class="tab" checked>
<label for="publish_bytes_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="publish_bytes_java" name="publish_bytes" class="tab">
<label for="publish_bytes_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="publish_bytes_js" name="publish_bytes" class="tab">
<label for="publish_bytes_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="publish_bytes_py" name="publish_bytes" class="tab">
<label for="publish_bytes_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="publish_bytes_ruby" name="publish_bytes" class="tab">
<label for="publish_bytes_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="publish_bytes_ts" name="publish_bytes" class="tab">
<label for="publish_bytes_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="publish_bytes_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/publish_bytes/main.go#L10-22"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">nc, err := nats.Connect(&#34;demo.nats.io&#34;)
if err != nil {
log.Fatal(err)
}
defer nc.Close()
if err := nc.Publish(&#34;updates&#34;, []byte(&#34;All is Well&#34;)); err != nil {
log.Fatal(err)
}
// Make sure the message goes through before we close
nc.Flush()
</code></pre>
</div>
<div class="tab__content">
<pre id="publish_bytes_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/PublishBytes.java#L13-21"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Connection nc = Nats.connect(&#34;nats://demo.nats.io:4222&#34;);
nc.publish(&#34;updates&#34;, &#34;All is Well&#34;.getBytes(StandardCharsets.UTF_8));
// Make sure the message goes through before we close
nc.flush(Duration.ZERO);
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="publish_bytes_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/publisher_samples.js#L8-13"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let nc = NATS.connect({url: &#34;nats://demo.nats.io:4222&#34;, preserveBuffers: true});
let buf = Buffer.allocUnsafe(12);
buf.fill(&#34;All is well&#34;);
nc.publish(&#39;updates&#39;, buf);
</code></pre>
</div>
<div class="tab__content">
<pre id="publish_bytes_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/publish_bytes.py#L6-13"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
await nc.connect(servers=[&#34;nats://demo.nats.io:4222&#34;])
await nc.publish(&#34;updates&#34;, b&#39;All is Well&#39;)
</code></pre>
</div>
<div class="tab__content">
<pre id="publish_bytes_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/publish_bytes.rb#L1-7"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">require &#39;nats/client&#39;
NATS.start(servers:[&#34;nats://127.0.0.1:4222&#34;]) do |nc|
nc.publish(&#34;updates&#34;, &#34;All is Well&#34;)
end
</code></pre>
</div>
<div class="tab__content">
<pre id="publish_bytes_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/publisher_samples.ts#L6-15"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let nc = await connect({
url: &#34;nats://demo.nats.io:4222&#34;,
payload: Payload.BINARY
});
let buf = Buffer.allocUnsafe(12);
buf.fill(&#34;All is Well&#34;);
nc.publish(&#39;updates&#39;, buf);
</code></pre>
</div>
</div>

View File

@ -1,134 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="publish_json_go" name="publish_json" class="tab" checked>
<label for="publish_json_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="publish_json_java" name="publish_json" class="tab">
<label for="publish_json_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="publish_json_js" name="publish_json" class="tab">
<label for="publish_json_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="publish_json_py" name="publish_json" class="tab">
<label for="publish_json_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="publish_json_ruby" name="publish_json" class="tab">
<label for="publish_json_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="publish_json_ts" name="publish_json" class="tab">
<label for="publish_json_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="publish_json_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/publish_json/main.go#L10-34"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">nc, err := nats.Connect(&#34;demo.nats.io&#34;)
if err != nil {
log.Fatal(err)
}
ec, err := nats.NewEncodedConn(nc, nats.JSON_ENCODER)
if err != nil {
nc.Close()
log.Fatal(err)
}
defer ec.Close()
// Define the object
type stock struct {
Symbol string
Price int
}
// Publish the message
if err := ec.Publish(&#34;updates&#34;, &amp;stock{Symbol: &#34;GOOG&#34;, Price: 1200}); err != nil {
log.Fatal(err)
}
// Make sure the message goes through before we close
ec.Flush()
</code></pre>
</div>
<div class="tab__content">
<pre id="publish_json_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/PublishJSON.java#L12-44"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">class StockForJsonPub {
public String symbol;
public float price;
}
public class PublishJSON {
public static void main(String[] args) {
try {
Connection nc = Nats.connect(&#34;nats://demo.nats.io:4222&#34;);
// Create the data object
StockForJsonPub stk = new StockForJsonPub();
stk.symbol=&#34;GOOG&#34;;
stk.price=1200;
// use Gson to encode the object to JSON
GsonBuilder builder = new GsonBuilder();
Gson gson = builder.create();
String json = gson.toJson(stk);
// Publish the message
nc.publish(&#34;updates&#34;, json.getBytes(StandardCharsets.UTF_8));
// Make sure the message goes through before we close
nc.flush(Duration.ZERO);
nc.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
</code></pre>
</div>
<div class="tab__content">
<pre id="publish_json_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/publisher_samples.js#L25-28"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let nc = NATS.connect({url: &#34;nats://demo.nats.io:4222&#34;, json: true});
nc.publish(&#39;updates&#39;, {ticker: &#39;GOOG&#39;, price: 1200});
</code></pre>
</div>
<div class="tab__content">
<pre id="publish_json_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/publish_json.py#L7-14"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
await nc.connect(servers=[&#34;nats://demo.nats.io:4222&#34;])
await nc.publish(&#34;updates&#34;, json.dumps({&#34;symbol&#34;: &#34;GOOG&#34;, &#34;price&#34;: 1200 }).encode())
</code></pre>
</div>
<div class="tab__content">
<pre id="publish_json_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/publish_json.rb#L1-8"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">require &#39;nats/client&#39;
require &#39;json&#39;
NATS.start(servers:[&#34;nats://127.0.0.1:4222&#34;]) do |nc|
nc.publish(&#34;updates&#34;, {&#34;symbol&#34;: &#34;GOOG&#34;, &#34;price&#34;: 1200}.to_json)
end
</code></pre>
</div>
<div class="tab__content">
<pre id="publish_json_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/publisher_samples.ts#L22-29"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let nc = await connect({
url: &#34;nats://demo.nats.io:4222&#34;,
payload: Payload.JSON
});
nc.publish(&#39;updates&#39;, {ticker: &#39;GOOG&#39;, price: 1200});
</code></pre>
</div>
</div>

View File

@ -1,186 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="publish_with_reply_go" name="publish_with_reply" class="tab" checked>
<label for="publish_with_reply_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="publish_with_reply_java" name="publish_with_reply" class="tab">
<label for="publish_with_reply_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="publish_with_reply_js" name="publish_with_reply" class="tab">
<label for="publish_with_reply_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="publish_with_reply_py" name="publish_with_reply" class="tab">
<label for="publish_with_reply_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="publish_with_reply_ruby" name="publish_with_reply" class="tab">
<label for="publish_with_reply_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="publish_with_reply_ts" name="publish_with_reply" class="tab">
<label for="publish_with_reply_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="publish_with_reply_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/publish_with_reply/main.go#L11-43"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">nc, err := nats.Connect(&#34;demo.nats.io&#34;)
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Create a unique subject name
uniqueReplyTo := nats.NewInbox()
// Listen for a single response
sub, err := nc.SubscribeSync(uniqueReplyTo)
if err != nil {
log.Fatal(err)
}
// Send the request
if err := nc.PublishRequest(&#34;time&#34;, uniqueReplyTo, nil); err != nil {
log.Fatal(err)
}
// Read the reply
msg, err := sub.NextMsg(time.Second)
if err != nil {
log.Fatal(err)
}
// Use the response
log.Printf(&#34;Reply: %s&#34;, msg.Data)
// Close the connection
nc.Close()
</code></pre>
</div>
<div class="tab__content">
<pre id="publish_with_reply_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/PublishWithReply.java#L16-37"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Connection nc = Nats.connect(&#34;nats://demo.nats.io:4222&#34;);
// Create a unique subject name
String uniqueReplyTo = NUID.nextGlobal();
// Listen for a single response
Subscription sub = nc.subscribe(uniqueReplyTo);
sub.unsubscribe(1);
// Send the request
nc.publish(&#34;time&#34;, uniqueReplyTo, null);
// Read the reply
Message msg = sub.nextMessage(Duration.ofSeconds(1));
// Use the response
System.out.println(new String(msg.getData(), StandardCharsets.UTF_8));
// Close the connection
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="publish_with_reply_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/publisher_samples.js#L41-57"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// set up a subscription to process the request
nc.subscribe(&#39;time&#39;, (msg, reply) =&gt; {
if(reply) {
nc.publish(reply, new Date().toLocaleTimeString());
}
});
// create a subscription subject that the responding send replies to
let inbox = NATS.createInbox();
nc.subscribe(inbox, {max: 1}, (msg) =&gt; {
t.log(&#39;the time is&#39;, msg);
nc.close();
});
nc.publish(&#39;time&#39;, &#34;&#34;, inbox);
</code></pre>
</div>
<div class="tab__content">
<pre id="publish_with_reply_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/publish_with_reply.py#L8-27"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
future = asyncio.Future()
async def sub(msg):
nonlocal future
future.set_result(msg)
await nc.connect(servers=[&#34;nats://demo.nats.io:4222&#34;])
await nc.subscribe(&#34;time&#34;, cb=sub)
unique_reply_to = new_inbox()
await nc.publish_request(&#34;time&#34;, unique_reply_to, b&#39;&#39;)
# Use the response
msg = await asyncio.wait_for(future, 1)
print(&#34;Reply:&#34;, msg)
</code></pre>
</div>
<div class="tab__content">
<pre id="publish_with_reply_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/publish_with_reply.rb#L1-22"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">require &#39;nats/client&#39;
require &#39;fiber&#39;
NATS.start(servers:[&#34;nats://127.0.0.1:4222&#34;]) do |nc|
Fiber.new do
f = Fiber.current
nc.subscribe(&#34;time&#34;) do |msg, reply|
f.resume msg
end
nc.publish(&#34;time&#34;, &#39;example&#39;, NATS.create_inbox)
# Use the response
msg = Fiber.yield
puts &#34;Reply: #{msg}&#34;
end.resume
end
</code></pre>
</div>
<div class="tab__content">
<pre id="publish_with_reply_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/publisher_samples.ts#L41-64"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// set up a subscription to process the request
await nc.subscribe(&#39;time&#39;, (err, msg) =&gt; {
if (err) {
// this example is running inside of a promise
reject();
return;
}
if (msg.reply) {
nc.publish(msg.reply, new Date().toLocaleTimeString());
}
});
// create a subscription subject that the responding send replies to
let inbox = createInbox();
await nc.subscribe(inbox, (err, msg) =&gt; {
t.log(&#39;the time is&#39;, msg.data);
// this example is running inside of a promise
nc.close();
resolve();
}, {max: 1});
nc.publish(&#39;time&#39;, &#34;&#34;, inbox);
</code></pre>
</div>
</div>

View File

@ -1,106 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="reconnect_10s_go" name="reconnect_10s" class="tab" checked>
<label for="reconnect_10s_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="reconnect_10s_java" name="reconnect_10s" class="tab">
<label for="reconnect_10s_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="reconnect_10s_js" name="reconnect_10s" class="tab">
<label for="reconnect_10s_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="reconnect_10s_py" name="reconnect_10s" class="tab">
<label for="reconnect_10s_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="reconnect_10s_ruby" name="reconnect_10s" class="tab">
<label for="reconnect_10s_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="reconnect_10s_ts" name="reconnect_10s" class="tab">
<label for="reconnect_10s_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="reconnect_10s_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/reconnect_10s/main.go#L11-21"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">// Set reconnect interval to 10 seconds
nc, err := nats.Connect(&#34;demo.nats.io&#34;, nats.ReconnectWait(10*time.Second))
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Do something with the connection
</code></pre>
</div>
<div class="tab__content">
<pre id="reconnect_10s_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/ReconnectTenSeconds.java#L13-23"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Options options = new Options.Builder().
server(&#34;nats://demo.nats.io:4222&#34;).
reconnectWait(Duration.ofSeconds(10)). // Set Reconnect Wait
build();
Connection nc = Nats.connect(options);
// Do something with the connection
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="reconnect_10s_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/reconnect_samples.js#L42-47"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let nc = NATS.connect({
reconnectTimeWait: 10 * 1000, //10s
servers: [&#34;nats://demo.nats.io:4222&#34;]
});
</code></pre>
</div>
<div class="tab__content">
<pre id="reconnect_10s_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/reconnect_10s.py#L5-16"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
await nc.connect(
servers=[&#34;nats://demo.nats.io:4222&#34;],
reconnect_time_wait=10,
)
# Do something with the connection
await nc.close()
</code></pre>
</div>
<div class="tab__content">
<pre id="reconnect_10s_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/reconnect_10s.rb#L1-10"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">require &#39;nats/client&#39;
NATS.start(servers: [&#34;nats://127.0.0.1:1222&#34;, &#34;nats://127.0.0.1:1223&#34;, &#34;nats://127.0.0.1:1224&#34;], reconnect_time_wait: 10) do |nc|
# Do something with the connection
# Close the connection
nc.close
end
</code></pre>
</div>
<div class="tab__content">
<pre id="reconnect_10s_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/reconnect_samples.ts#L33-40"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// will throw an exception if connection fails
let nc = await connect({
reconnectTimeWait: 10*1000, //10s
servers: [&#34;nats://demo.nats.io:4222&#34;]
});
nc.close();
</code></pre>
</div>
</div>

View File

@ -1,106 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="reconnect_10x_go" name="reconnect_10x" class="tab" checked>
<label for="reconnect_10x_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="reconnect_10x_java" name="reconnect_10x" class="tab">
<label for="reconnect_10x_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="reconnect_10x_js" name="reconnect_10x" class="tab">
<label for="reconnect_10x_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="reconnect_10x_py" name="reconnect_10x" class="tab">
<label for="reconnect_10x_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="reconnect_10x_ruby" name="reconnect_10x" class="tab">
<label for="reconnect_10x_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="reconnect_10x_ts" name="reconnect_10x" class="tab">
<label for="reconnect_10x_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="reconnect_10x_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/reconnect_10x/main.go#L10-20"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">// Set max reconnects attempts
nc, err := nats.Connect(&#34;demo.nats.io&#34;, nats.MaxReconnects(10))
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Do something with the connection
</code></pre>
</div>
<div class="tab__content">
<pre id="reconnect_10x_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/ReconnectTenTimes.java#L11-21"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Options options = new Options.Builder().
server(&#34;nats://demo.nats.io:4222&#34;).
maxReconnects(10). // Set max reconnect attempts
build();
Connection nc = Nats.connect(options);
// Do something with the connection
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="reconnect_10x_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/reconnect_samples.js#L58-63"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let nc = NATS.connect({
maxReconnectAttempts: 10,
servers: [&#34;nats://demo.nats.io:4222&#34;]
});
</code></pre>
</div>
<div class="tab__content">
<pre id="reconnect_10x_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/reconnect_10x.py#L5-16"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
await nc.connect(
servers=[&#34;nats://demo.nats.io:4222&#34;],
max_reconnect_attempts=10,
)
# Do something with the connection
await nc.close()
</code></pre>
</div>
<div class="tab__content">
<pre id="reconnect_10x_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/reconnect_10x.rb#L1-10"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">require &#39;nats/client&#39;
NATS.start(servers: [&#34;nats://127.0.0.1:1222&#34;, &#34;nats://127.0.0.1:1223&#34;, &#34;nats://127.0.0.1:1224&#34;], max_reconnect_attempts: 10) do |nc|
# Do something with the connection
# Close the connection
nc.close
end
</code></pre>
</div>
<div class="tab__content">
<pre id="reconnect_10x_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/reconnect_samples.ts#L45-52"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// will throw an exception if connection fails
let nc = await connect({
maxReconnectAttempts: 10,
servers: [&#34;nats://demo.nats.io:4222&#34;]
});
nc.close();
</code></pre>
</div>
</div>

View File

@ -1,82 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="reconnect_5mb_go" name="reconnect_5mb" class="tab" checked>
<label for="reconnect_5mb_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="reconnect_5mb_java" name="reconnect_5mb" class="tab">
<label for="reconnect_5mb_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="reconnect_5mb_js" name="reconnect_5mb" class="tab">
<label for="reconnect_5mb_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="reconnect_5mb_py" name="reconnect_5mb" class="tab">
<label for="reconnect_5mb_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="reconnect_5mb_ruby" name="reconnect_5mb" class="tab">
<label for="reconnect_5mb_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="reconnect_5mb_ts" name="reconnect_5mb" class="tab">
<label for="reconnect_5mb_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="reconnect_5mb_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/reconnect_5mb/main.go#L10-20"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">// Set reconnect buffer size in bytes (5 MB)
nc, err := nats.Connect(&#34;demo.nats.io&#34;, nats.ReconnectBufSize(5*1024*1024))
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Do something with the connection
</code></pre>
</div>
<div class="tab__content">
<pre id="reconnect_5mb_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/ReconnectFiveMB.java#L11-21"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Options options = new Options.Builder().
server(&#34;nats://demo.nats.io:4222&#34;).
reconnectBufferSize(5 * 1024 * 1024). // Set buffer in bytes
build();
Connection nc = Nats.connect(options);
// Do something with the connection
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="reconnect_5mb_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/reconnect_samples.js#L94-96"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// Reconnect buffer size is not configurable on node-nats
</code></pre>
</div>
<div class="tab__content">
<pre id="reconnect_5mb_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/notapplicable.txt#L1-3"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python"># Asyncio NATS client currentply does not implement a reconnect buffer
</code></pre>
</div>
<div class="tab__content">
<pre id="reconnect_5mb_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/notapplicable.txt#L1-3"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby"># There is currently no reconnect pending buffer as part of the Ruby NATS client.
</code></pre>
</div>
<div class="tab__content">
<pre id="reconnect_5mb_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/reconnect_samples.ts#L76-78"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// Reconnect buffer size is not configurable on ts-nats
</code></pre>
</div>
</div>

View File

@ -1,142 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="reconnect_event_go" name="reconnect_event" class="tab" checked>
<label for="reconnect_event_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="reconnect_event_java" name="reconnect_event" class="tab">
<label for="reconnect_event_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="reconnect_event_js" name="reconnect_event" class="tab">
<label for="reconnect_event_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="reconnect_event_py" name="reconnect_event" class="tab">
<label for="reconnect_event_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="reconnect_event_ruby" name="reconnect_event" class="tab">
<label for="reconnect_event_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="reconnect_event_ts" name="reconnect_event" class="tab">
<label for="reconnect_event_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="reconnect_event_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/reconnect_event/main.go#L10-28"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">// Connection event handlers are invoked asynchronously
// and the state of the connection may have changed when
// the callback is invoked.
nc, err := nats.Connect(&#34;demo.nats.io&#34;,
nats.DisconnectHandler(func(nc *nats.Conn) {
// handle disconnect event
}),
nats.ReconnectHandler(func(nc *nats.Conn) {
// handle reconnect event
}))
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Do something with the connection
</code></pre>
</div>
<div class="tab__content">
<pre id="reconnect_event_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/ReconnectEvents.java#L12-28"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Options options = new Options.Builder().
server(&#34;nats://demo.nats.io:4222&#34;).
connectionListener((conn, type) -&gt; {
if (type == Events.RECONNECTED) {
// handle reconnected
} else if (type == Events.DISCONNECTED) {
// handle disconnected, wait for reconnect
}
}).
build();
Connection nc = Nats.connect(options);
// Do something with the connection
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="reconnect_event_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/reconnect_samples.js#L74-83"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let nc = NATS.connect({
maxReconnectAttempts: 10,
servers: [&#34;nats://demo.nats.io:4222&#34;]
});
nc.on(&#39;reconnect&#39;, (c) =&gt; {
console.log(&#39;reconnected&#39;);
});
</code></pre>
</div>
<div class="tab__content">
<pre id="reconnect_event_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/reconnect_event.py#L6-25"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
async def disconnected_cb():
print(&#34;Got disconnected!&#34;)
async def reconnected_cb():
# See who we are connected to on reconnect.
print(&#34;Got reconnected to {url}&#34;.format(url=nc.connected_url.netloc))
await nc.connect(
servers=[&#34;nats://demo.nats.io:4222&#34;],
reconnect_time_wait=10,
reconnected_cb=reconnected_cb,
disconnected_cb=disconnected_cb,
)
# Do something with the connection.
</code></pre>
</div>
<div class="tab__content">
<pre id="reconnect_event_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/reconnect_event.rb#L1-14"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">require &#39;nats/client&#39;
NATS.start(servers: [&#34;nats://127.0.0.1:1222&#34;, &#34;nats://127.0.0.1:1223&#34;, &#34;nats://127.0.0.1:1224&#34;]) do |nc|
# Do something with the connection
nc.on_reconnect do
puts &#34;Got reconnected to #{nc.connected_server}&#34;
end
nc.on_disconnect do |reason|
puts &#34;Got disconnected! #{reason}&#34;
end
end
</code></pre>
</div>
<div class="tab__content">
<pre id="reconnect_event_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/reconnect_samples.ts#L57-70"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// will throw an exception if connection fails
let nc = await connect({
maxReconnectAttempts: 10,
servers: [&#34;nats://demo.nats.io:4222&#34;]
});
// first argument is the connection (same as nc in this case)
// second argument is the url of the server where the client
// connected
nc.on(&#39;reconnect&#39;, (conn, server) =&gt; {
console.log(&#39;reconnected to&#39;, server);
});
nc.close();
</code></pre>
</div>
</div>

View File

@ -1,118 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="reconnect_no_random_go" name="reconnect_no_random" class="tab" checked>
<label for="reconnect_no_random_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="reconnect_no_random_java" name="reconnect_no_random" class="tab">
<label for="reconnect_no_random_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="reconnect_no_random_js" name="reconnect_no_random" class="tab">
<label for="reconnect_no_random_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="reconnect_no_random_py" name="reconnect_no_random" class="tab">
<label for="reconnect_no_random_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="reconnect_no_random_ruby" name="reconnect_no_random" class="tab">
<label for="reconnect_no_random_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="reconnect_no_random_ts" name="reconnect_no_random" class="tab">
<label for="reconnect_no_random_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="reconnect_no_random_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/reconnect_no_random/main.go#L11-25"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">servers := []string{&#34;nats://localhost:1222&#34;,
&#34;nats://localhost:1223&#34;,
&#34;nats://localhost:1224&#34;,
}
nc, err := nats.Connect(strings.Join(servers, &#34;,&#34;), nats.DontRandomize())
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Do something with the connection
</code></pre>
</div>
<div class="tab__content">
<pre id="reconnect_no_random_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/ReconnectNoRandom.java#L11-21"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Options options = new Options.Builder().
server(&#34;nats://demo.nats.io:4222&#34;).
noRandomize(). // Disable reconnect shuffle
build();
Connection nc = Nats.connect(options);
// Do something with the connection
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="reconnect_no_random_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/reconnect_samples.js#L6-13"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let nc = NATS.connect({
noRandomize: false,
servers: [&#34;nats://127.0.0.1:4443&#34;,
&#34;nats://demo.nats.io:4222&#34;
]
});
</code></pre>
</div>
<div class="tab__content">
<pre id="reconnect_no_random_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/reconnect_no_random.py#L5-20"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
await nc.connect(
servers=[
&#34;nats://demo.nats.io:1222&#34;,
&#34;nats://demo.nats.io:1223&#34;,
&#34;nats://demo.nats.io:1224&#34;
],
dont_randomize=True,
)
# Do something with the connection
await nc.close()
</code></pre>
</div>
<div class="tab__content">
<pre id="reconnect_no_random_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/reconnect_no_random.rb#L1-10"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">require &#39;nats/client&#39;
NATS.start(servers: [&#34;nats://127.0.0.1:1222&#34;, &#34;nats://127.0.0.1:1223&#34;, &#34;nats://127.0.0.1:1224&#34;], dont_randomize_servers: true) do |nc|
# Do something with the connection
# Close the connection
nc.close
end
</code></pre>
</div>
<div class="tab__content">
<pre id="reconnect_no_random_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/reconnect_samples.ts#L6-15"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// will throw an exception if connection fails
let nc = await connect({
noRandomize: false,
servers: [&#34;nats://127.0.0.1:4443&#34;,
&#34;nats://demo.nats.io:4222&#34;
]
});
nc.close();
</code></pre>
</div>
</div>

View File

@ -1,110 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="reconnect_none_go" name="reconnect_none" class="tab" checked>
<label for="reconnect_none_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="reconnect_none_java" name="reconnect_none" class="tab">
<label for="reconnect_none_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="reconnect_none_js" name="reconnect_none" class="tab">
<label for="reconnect_none_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="reconnect_none_py" name="reconnect_none" class="tab">
<label for="reconnect_none_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="reconnect_none_ruby" name="reconnect_none" class="tab">
<label for="reconnect_none_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="reconnect_none_ts" name="reconnect_none" class="tab">
<label for="reconnect_none_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="reconnect_none_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/reconnect_none/main.go#L10-20"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">// Disable reconnect attempts
nc, err := nats.Connect(&#34;demo.nats.io&#34;, nats.NoReconnect())
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Do something with the connection
</code></pre>
</div>
<div class="tab__content">
<pre id="reconnect_none_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/ReconnectNone.java#L11-21"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Options options = new Options.Builder().
server(&#34;nats://demo.nats.io:4222&#34;).
noReconnect(). // Disable reconnect attempts
build();
Connection nc = Nats.connect(options);
// Do something with the connection
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="reconnect_none_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/reconnect_samples.js#L25-30"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let nc = NATS.connect({
reconnect: false,
servers: [&#34;nats://demo.nats.io:4222&#34;]
});
</code></pre>
</div>
<div class="tab__content">
<pre id="reconnect_none_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/reconnect_none.py#L5-20"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
await nc.connect(
servers=[
&#34;nats://demo.nats.io:1222&#34;,
&#34;nats://demo.nats.io:1223&#34;,
&#34;nats://demo.nats.io:1224&#34;
],
allow_reconnect=False,
)
# Do something with the connection
await nc.close()
</code></pre>
</div>
<div class="tab__content">
<pre id="reconnect_none_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/reconnect_none.rb#L1-10"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">require &#39;nats/client&#39;
NATS.start(servers: [&#34;nats://127.0.0.1:1222&#34;, &#34;nats://127.0.0.1:1223&#34;, &#34;nats://127.0.0.1:1224&#34;], reconnect: false) do |nc|
# Do something with the connection
# Close the connection
nc.close
end
</code></pre>
</div>
<div class="tab__content">
<pre id="reconnect_none_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/reconnect_samples.ts#L20-27"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// will throw an exception if connection fails
let nc = await connect({
reconnect: false,
servers: [&#34;nats://demo.nats.io:4222&#34;]
});
nc.close();
</code></pre>
</div>
</div>

View File

@ -1,125 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="request_reply_go" name="request_reply" class="tab" checked>
<label for="request_reply_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="request_reply_java" name="request_reply" class="tab">
<label for="request_reply_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="request_reply_js" name="request_reply" class="tab">
<label for="request_reply_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="request_reply_py" name="request_reply" class="tab">
<label for="request_reply_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="request_reply_ruby" name="request_reply" class="tab">
<label for="request_reply_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="request_reply_ts" name="request_reply" class="tab">
<label for="request_reply_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="request_reply_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/request_reply/main.go#L11-29"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">nc, err := nats.Connect(&#34;demo.nats.io&#34;)
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Send the request
msg, err := nc.Request(&#34;time&#34;, nil, time.Second)
if err != nil {
log.Fatal(err)
}
// Use the response
log.Printf(&#34;Reply: %s&#34;, msg.Data)
// Close the connection
nc.Close()
</code></pre>
</div>
<div class="tab__content">
<pre id="request_reply_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/RequestReply.java#L14-25"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Connection nc = Nats.connect(&#34;nats://demo.nats.io:4222&#34;);
// Send the request
Message msg = nc.request(&#34;time&#34;, null, Duration.ofSeconds(1));
// Use the response
System.out.println(new String(msg.getData(), StandardCharsets.UTF_8));
// Close the connection
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="request_reply_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/publisher_samples.js#L77-82"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">nc.requestOne(&#39;time&#39;, (msg) =&gt; {
t.log(&#39;the time is&#39;, msg);
nc.close();
});
</code></pre>
</div>
<div class="tab__content">
<pre id="request_reply_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/request_reply.py#L8-25"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
async def sub(msg):
await nc.publish(msg.reply, b&#39;response&#39;)
await nc.connect(servers=[&#34;nats://demo.nats.io:4222&#34;])
await nc.subscribe(&#34;time&#34;, cb=sub)
# Send the request
try:
msg = await nc.request(&#34;time&#34;, b&#39;&#39;, timeout=1)
# Use the response
print(&#34;Reply:&#34;, msg)
except asyncio.TimeoutError:
print(&#34;Timed out waiting for response&#34;)
</code></pre>
</div>
<div class="tab__content">
<pre id="request_reply_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/request_reply.rb#L1-17"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">require &#39;nats/client&#39;
require &#39;fiber&#39;
NATS.start(servers:[&#34;nats://127.0.0.1:4222&#34;]) do |nc|
nc.subscribe(&#34;time&#34;) do |msg, reply|
nc.publish(reply, &#34;response&#34;)
end
Fiber.new do
# Use the response
msg = nc.request(&#34;time&#34;, &#34;&#34;)
puts &#34;Reply: #{msg}&#34;
end.resume
end
</code></pre>
</div>
<div class="tab__content">
<pre id="request_reply_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/publisher_samples.ts#L81-85"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let msg = await nc.request(&#39;time&#39;, 1000);
t.log(&#39;the time is&#39;, msg.data);
nc.close();
</code></pre>
</div>
</div>

View File

@ -1,111 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="servers_added_go" name="servers_added" class="tab" checked>
<label for="servers_added_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="servers_added_java" name="servers_added" class="tab">
<label for="servers_added_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="servers_added_js" name="servers_added" class="tab">
<label for="servers_added_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="servers_added_py" name="servers_added" class="tab">
<label for="servers_added_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="servers_added_ruby" name="servers_added" class="tab">
<label for="servers_added_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="servers_added_ts" name="servers_added" class="tab">
<label for="servers_added_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="servers_added_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/servers_added/main.go#L10-25"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">// Be notified if a new server joins the cluster.
// Print all the known servers and the only the ones that were discovered.
nc, err := nats.Connect(&#34;demo.nats.io&#34;,
nats.DiscoveredServersHandler(func(nc *nats.Conn) {
log.Printf(&#34;Known servers: %v\n&#34;, nc.Servers())
log.Printf(&#34;Discovered servers: %v\n&#34;, nc.DiscoveredServers())
}))
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Do something with the connection
</code></pre>
</div>
<div class="tab__content">
<pre id="servers_added_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/ListenForNewServers.java#L8-37"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">class ServersAddedListener implements ConnectionListener {
public void connectionEvent(Connection nc, Events event) {
if (event == Events.DISCOVERED_SERVERS) {
for (String server : nc.getServers()) {
System.out.println(&#34;Known server: &#34;&#43;server);
}
}
}
}
public class ListenForNewServers {
public static void main(String[] args) {
try {
Options options = new Options.Builder().
server(&#34;nats://demo.nats.io:4222&#34;).
connectionListener(new ServersAddedListener()). // Set the listener
build();
Connection nc = Nats.connect(options);
// Do something with the connection
nc.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
</code></pre>
</div>
<div class="tab__content">
<pre id="servers_added_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/event_samples.js#L56-61"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let nc = NATS.connect(&#34;nats://demo.nats.io:4222&#34;);
nc.on(&#39;serversDiscovered&#39;, (urls) =&gt; {
t.log(&#39;serversDiscovered&#39;, urls);
});
</code></pre>
</div>
<div class="tab__content">
<pre id="servers_added_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/notapplicable.txt#L13-15"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python"># Asyncio NATS client does not support discovered servers handler right now
</code></pre>
</div>
<div class="tab__content">
<pre id="servers_added_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/notapplicable.txt#L25-27"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby"># The Ruby NATS client does not support discovered servers handler right now
</code></pre>
</div>
<div class="tab__content">
<pre id="servers_added_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/event_samples.ts#L36-40"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">nc.on(&#39;serversChanged&#39;, (ce) =&gt; {
t.log(&#39;servers changed\n&#39;, &#39;added: &#39;,ce.added, &#39;removed:&#39;, ce.removed);
});
</code></pre>
</div>
</div>

View File

@ -1,154 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="slow_listener_go" name="slow_listener" class="tab" checked>
<label for="slow_listener_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="slow_listener_java" name="slow_listener" class="tab">
<label for="slow_listener_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="slow_listener_js" name="slow_listener" class="tab">
<label for="slow_listener_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="slow_listener_py" name="slow_listener" class="tab">
<label for="slow_listener_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="slow_listener_ruby" name="slow_listener" class="tab">
<label for="slow_listener_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="slow_listener_ts" name="slow_listener" class="tab">
<label for="slow_listener_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="slow_listener_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/slow_listener/main.go#L10-27"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">// Set the callback that will be invoked when an asynchronous error occurs.
nc, err := nats.Connect(&#34;demo.nats.io&#34;,
nats.ErrorHandler(func(nc *nats.Conn, sub *nats.Subscription, err error) {
if err == nats.ErrSlowConsumer {
dropped, _ := sub.Dropped()
log.Printf(&#34;Slow consumer on subject %s dropped %d messages\n&#34;,
sub.Subject, dropped)
}
}))
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Do something with the connection
</code></pre>
</div>
<div class="tab__content">
<pre id="slow_listener_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/SlowConsumerListener.java#L9-43"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">class SlowConsumerReporter implements ErrorListener {
public void errorOccurred(Connection conn, String error)
{
}
public void exceptionOccurred(Connection conn, Exception exp) {
}
// Detect slow consumers
public void slowConsumerDetected(Connection conn, Consumer consumer) {
// Get the dropped count
System.out.println(&#34;A slow consumer dropped messages: &#34;&#43; consumer.getDroppedCount());
}
}
public class SlowConsumerListener {
public static void main(String[] args) {
try {
Options options = new Options.Builder().
server(&#34;nats://demo.nats.io:4222&#34;).
errorListener(new SlowConsumerReporter()). // Set the listener
build();
Connection nc = Nats.connect(options);
// Do something with the connection
nc.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
</code></pre>
</div>
<div class="tab__content">
<pre id="slow_listener_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/options_samples.js#L114-116"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// slow consumer detection is not configurable on node-nats
</code></pre>
</div>
<div class="tab__content">
<pre id="slow_listener_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/slow_listener.py#L7-50"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">
nc = NATS()
async def error_cb(e):
if type(e) is nats.aio.errors.ErrSlowConsumer:
print(&#34;Slow consumer error, unsubscribing from handling further messages...&#34;)
await nc.unsubscribe(e.sid)
await nc.connect(
servers=[&#34;nats://demo.nats.io:4222&#34;],
error_cb=error_cb,
)
msgs = []
future = asyncio.Future()
async def cb(msg):
nonlocal msgs
nonlocal future
print(msg)
msgs.append(msg)
if len(msgs) == 3:
# Head of line blocking on other messages caused
# by single message proccesing taking long...
await asyncio.sleep(1)
await nc.subscribe(&#34;updates&#34;, cb=cb, pending_msgs_limit=5)
for i in range(0, 10):
await nc.publish(&#34;updates&#34;, &#34;msg #{}&#34;.format(i).encode())
await asyncio.sleep(0)
try:
await asyncio.wait_for(future, 1)
except asyncio.TimeoutError:
pass
for msg in msgs:
print(&#34;[Received]&#34;, msg)
await nc.close()
</code></pre>
</div>
<div class="tab__content">
<pre id="slow_listener_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/notapplicable.txt#L21-23"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby"># The Ruby NATS client currently does not have option to customize slow consumer limits per sub.
</code></pre>
</div>
<div class="tab__content">
<pre id="slow_listener_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/options_samples.ts#L82-84"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// slow consumer detection is not configurable on ts-nats
</code></pre>
</div>
</div>

View File

@ -1,121 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="slow_pending_limits_go" name="slow_pending_limits" class="tab" checked>
<label for="slow_pending_limits_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="slow_pending_limits_java" name="slow_pending_limits" class="tab">
<label for="slow_pending_limits_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="slow_pending_limits_js" name="slow_pending_limits" class="tab">
<label for="slow_pending_limits_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="slow_pending_limits_py" name="slow_pending_limits" class="tab">
<label for="slow_pending_limits_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="slow_pending_limits_ruby" name="slow_pending_limits" class="tab">
<label for="slow_pending_limits_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="slow_pending_limits_ts" name="slow_pending_limits" class="tab">
<label for="slow_pending_limits_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="slow_pending_limits_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/sub_pending_limits/main.go#L10-37"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">nc, err := nats.Connect(&#34;demo.nats.io&#34;)
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Subscribe
sub1, err := nc.Subscribe(&#34;updates&#34;, func(m *nats.Msg) {})
if err != nil {
log.Fatal(err)
}
// Set limits of 1000 messages or 5MB, whichever comes first
sub1.SetPendingLimits(1000, 5*1024*1024)
// Subscribe
sub2, err := nc.Subscribe(&#34;updates&#34;, func(m *nats.Msg) {})
if err != nil {
log.Fatal(err)
}
// Set no limits for this subscription
sub2.SetPendingLimits(-1, -1)
// Close the connection
nc.Close()
</code></pre>
</div>
<div class="tab__content">
<pre id="slow_pending_limits_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/SetPendingLimits.java#L12-32"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Connection nc = Nats.connect(&#34;nats://demo.nats.io:4222&#34;);
Dispatcher d = nc.createDispatcher((msg) -&gt; {
// do something
});
d.subscribe(&#34;updates&#34;);
d.setPendingLimits(1_000, 5 * 1024 * 1024); // Set limits on a dispatcher
// Subscribe
Subscription sub = nc.subscribe(&#34;updates&#34;);
sub.setPendingLimits(1_000, 5 * 1024 * 1024); // Set limits on a subscription
// Do something
// Close the connection
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="slow_pending_limits_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/options_samples.js#L107-109"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// slow pending limits are not configurable on node-nats
</code></pre>
</div>
<div class="tab__content">
<pre id="slow_pending_limits_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/sub_pending_limits.py#L6-20"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
await nc.connect(servers=[&#34;nats://demo.nats.io:4222&#34;])
future = asyncio.Future()
async def cb(msg):
nonlocal future
future.set_result(msg)
# Set limits of 1000 messages or 5MB
await nc.subscribe(&#34;updates&#34;, cb=cb, pending_bytes_limit=5*1024*1024, pending_msgs_limit=1000)
</code></pre>
</div>
<div class="tab__content">
<pre id="slow_pending_limits_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/notapplicable.txt#L17-19"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby"># The Ruby NATS client currently does not have option to customize slow consumer limits per sub.
</code></pre>
</div>
<div class="tab__content">
<pre id="slow_pending_limits_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/options_samples.ts#L75-77"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// slow pending limits are not configurable on ts-nats
</code></pre>
</div>
</div>

View File

@ -1,195 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="subscribe_arrow_go" name="subscribe_arrow" class="tab" checked>
<label for="subscribe_arrow_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="subscribe_arrow_java" name="subscribe_arrow" class="tab">
<label for="subscribe_arrow_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="subscribe_arrow_js" name="subscribe_arrow" class="tab">
<label for="subscribe_arrow_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="subscribe_arrow_py" name="subscribe_arrow" class="tab">
<label for="subscribe_arrow_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="subscribe_arrow_ruby" name="subscribe_arrow" class="tab">
<label for="subscribe_arrow_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="subscribe_arrow_ts" name="subscribe_arrow" class="tab">
<label for="subscribe_arrow_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="subscribe_arrow_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/subscribe_arrow/main.go#L11-35"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">nc, err := nats.Connect(&#34;demo.nats.io&#34;)
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Use a WaitGroup to wait for 4 messages to arrive
wg := sync.WaitGroup{}
wg.Add(4)
// Subscribe
if _, err := nc.Subscribe(&#34;time.&gt;&#34;, func(m *nats.Msg) {
log.Printf(&#34;%s: %s&#34;, m.Subject, m.Data)
wg.Done()
}); err != nil {
log.Fatal(err)
}
// Wait for the 4 messages to come in
wg.Wait()
// Close the connection
nc.Close()
</code></pre>
</div>
<div class="tab__content">
<pre id="subscribe_arrow_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/SubscribeArrow.java#L14-36"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Connection nc = Nats.connect(&#34;nats://demo.nats.io:4222&#34;);
// Use a latch to wait for 4 messages to arrive
CountDownLatch latch = new CountDownLatch(4);
// Create a dispatcher and inline message handler
Dispatcher d = nc.createDispatcher((msg) -&gt; {
String subject = msg.getSubject();
String str = new String(msg.getData(), StandardCharsets.UTF_8);
System.out.println(subject &#43; &#34;: &#34; &#43; str);
latch.countDown();
});
// Subscribe
d.subscribe(&#34;time.&gt;&#34;);
// Wait for messages to come in
latch.await();
// Close the connection
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="subscribe_arrow_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/subscriber_samples.js#L176-199"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">nc.subscribe(&#39;time.&gt;&#39;, (msg, reply, subject) =&gt; {
// converting timezones correctly in node requires a library
// this doesn&#39;t take into account *many* things.
let time = &#34;&#34;;
switch (subject) {
case &#39;time.us.east&#39;:
time = new Date().toLocaleTimeString(&#34;en-us&#34;, {timeZone: &#34;America/New_York&#34;});
break;
case &#39;time.us.central&#39;:
time = new Date().toLocaleTimeString(&#34;en-us&#34;, {timeZone: &#34;America/Chicago&#34;});
break;
case &#39;time.us.mountain&#39;:
time = new Date().toLocaleTimeString(&#34;en-us&#34;, {timeZone: &#34;America/Denver&#34;});
break;
case &#39;time.us.west&#39;:
time = new Date().toLocaleTimeString(&#34;en-us&#34;, {timeZone: &#34;America/Los_Angeles&#34;});
break;
default:
time = &#34;I don&#39;t know what you are talking about Willis&#34;;
}
t.log(subject, time);
});
</code></pre>
</div>
<div class="tab__content">
<pre id="subscribe_arrow_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/subscribe_arrow.py#L6-30"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
await nc.connect(servers=[&#34;nats://demo.nats.io:4222&#34;])
# Use queue to wait for 4 messages to arrive
queue = asyncio.Queue()
async def cb(msg):
await queue.put(msg)
await nc.subscribe(&#34;time.&gt;&#34;, cb=cb)
# Send 2 messages and wait for them to come in
await nc.publish(&#34;time.A.east&#34;, b&#39;A&#39;)
await nc.publish(&#34;time.B.east&#34;, b&#39;B&#39;)
await nc.publish(&#34;time.C.west&#34;, b&#39;C&#39;)
await nc.publish(&#34;time.D.west&#34;, b&#39;D&#39;)
for i in range(0, 4):
msg = await queue.get()
print(&#34;Msg:&#34;, msg)
await nc.close()
</code></pre>
</div>
<div class="tab__content">
<pre id="subscribe_arrow_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/subscribe_arrow.rb#L1-26"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">require &#39;nats/client&#39;
require &#39;fiber&#39;
NATS.start(servers:[&#34;nats://127.0.0.1:4222&#34;]) do |nc|
Fiber.new do
f = Fiber.current
nc.subscribe(&#34;time.&gt;&#34;) do |msg, reply|
f.resume Time.now.to_f
end
nc.publish(&#34;time.A.east&#34;, &#34;A&#34;)
nc.publish(&#34;time.B.east&#34;, &#34;B&#34;)
nc.publish(&#34;time.C.west&#34;, &#34;C&#34;)
nc.publish(&#34;time.D.west&#34;, &#34;D&#34;)
# Use the response
4.times do
msg = Fiber.yield
puts &#34;Msg: #{msg}&#34;
end
end.resume
end
</code></pre>
</div>
<div class="tab__content">
<pre id="subscribe_arrow_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/subscriber_samples.ts#L156-179"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">await nc.subscribe(&#39;time.&gt;&#39;, (err, msg) =&gt; {
// converting timezones correctly in node requires a library
// this doesn&#39;t take into account *many* things.
let time = &#34;&#34;;
switch (msg.subject) {
case &#39;time.us.east&#39;:
time = new Date().toLocaleTimeString(&#34;en-us&#34;, {timeZone: &#34;America/New_York&#34;});
break;
case &#39;time.us.central&#39;:
time = new Date().toLocaleTimeString(&#34;en-us&#34;, {timeZone: &#34;America/Chicago&#34;});
break;
case &#39;time.us.mountain&#39;:
time = new Date().toLocaleTimeString(&#34;en-us&#34;, {timeZone: &#34;America/Denver&#34;});
break;
case &#39;time.us.west&#39;:
time = new Date().toLocaleTimeString(&#34;en-us&#34;, {timeZone: &#34;America/Los_Angeles&#34;});
break;
default:
time = &#34;I don&#39;t know what you are talking about Willis&#34;;
}
t.log(msg.subject, time);
});
</code></pre>
</div>
</div>

View File

@ -1,140 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="subscribe_async_go" name="subscribe_async" class="tab" checked>
<label for="subscribe_async_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="subscribe_async_java" name="subscribe_async" class="tab">
<label for="subscribe_async_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="subscribe_async_js" name="subscribe_async" class="tab">
<label for="subscribe_async_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="subscribe_async_py" name="subscribe_async" class="tab">
<label for="subscribe_async_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="subscribe_async_ruby" name="subscribe_async" class="tab">
<label for="subscribe_async_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="subscribe_async_ts" name="subscribe_async" class="tab">
<label for="subscribe_async_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="subscribe_async_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/subscribe_async/main.go#L11-34"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">nc, err := nats.Connect(&#34;demo.nats.io&#34;)
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Use a WaitGroup to wait for a message to arrive
wg := sync.WaitGroup{}
wg.Add(1)
// Subscribe
if _, err := nc.Subscribe(&#34;updates&#34;, func(m *nats.Msg) {
wg.Done()
}); err != nil {
log.Fatal(err)
}
// Wait for a message to come in
wg.Wait()
// Close the connection
nc.Close()
</code></pre>
</div>
<div class="tab__content">
<pre id="subscribe_async_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/SubscribeAsync.java#L14-35"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Connection nc = Nats.connect(&#34;nats://demo.nats.io:4222&#34;);
// Use a latch to wait for a message to arrive
CountDownLatch latch = new CountDownLatch(1);
// Create a dispatcher and inline message handler
Dispatcher d = nc.createDispatcher((msg) -&gt; {
String str = new String(msg.getData(), StandardCharsets.UTF_8);
System.out.println(str);
latch.countDown();
});
// Subscribe
d.subscribe(&#34;updates&#34;);
// Wait for a message to come in
latch.await();
// Close the connection
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="subscribe_async_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/subscriber_samples.js#L9-13"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">nc.subscribe(&#34;updates&#34;, (msg) =&gt; {
t.log(msg);
});
</code></pre>
</div>
<div class="tab__content">
<pre id="subscribe_async_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/subscribe_async.py#L6-24"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
await nc.connect(servers=[&#34;nats://demo.nats.io:4222&#34;])
future = asyncio.Future()
async def cb(msg):
nonlocal future
future.set_result(msg)
await nc.subscribe(&#34;updates&#34;, cb=cb)
await nc.publish(&#34;updates&#34;, b&#39;All is Well&#39;)
await nc.flush()
# Wait for message to come in
msg = await asyncio.wait_for(future, 1)
</code></pre>
</div>
<div class="tab__content">
<pre id="subscribe_async_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/subscribe_async.rb#L1-13"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">require &#39;nats/client&#39;
NATS.start(servers:[&#34;nats://127.0.0.1:4222&#34;]) do |nc|
nc.subscribe(&#34;updates&#34;) do |msg|
puts msg
nc.close
end
nc.publish(&#34;updates&#34;, &#34;All is Well&#34;)
end
</code></pre>
</div>
<div class="tab__content">
<pre id="subscribe_async_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/subscriber_samples.ts#L9-17"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">nc.subscribe(&#34;updates&#34;, (err, msg) =&gt; {
if(err) {
console.log(&#39;error&#39;, err);
} else {
t.log(msg.data);
}
});
</code></pre>
</div>
</div>

View File

@ -1,189 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="subscribe_json_go" name="subscribe_json" class="tab" checked>
<label for="subscribe_json_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="subscribe_json_java" name="subscribe_json" class="tab">
<label for="subscribe_json_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="subscribe_json_js" name="subscribe_json" class="tab">
<label for="subscribe_json_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="subscribe_json_py" name="subscribe_json" class="tab">
<label for="subscribe_json_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="subscribe_json_ruby" name="subscribe_json" class="tab">
<label for="subscribe_json_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="subscribe_json_ts" name="subscribe_json" class="tab">
<label for="subscribe_json_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="subscribe_json_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/subscribe_json/main.go#L11-45"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">nc, err := nats.Connect(&#34;demo.nats.io&#34;)
if err != nil {
log.Fatal(err)
}
defer nc.Close()
ec, err := nats.NewEncodedConn(nc, nats.JSON_ENCODER)
if err != nil {
log.Fatal(err)
}
defer ec.Close()
// Define the object
type stock struct {
Symbol string
Price int
}
wg := sync.WaitGroup{}
wg.Add(1)
// Subscribe
if _, err := ec.Subscribe(&#34;updates&#34;, func(s *stock) {
log.Printf(&#34;Stock: %s - Price: %v&#34;, s.Symbol, s.Price)
wg.Done()
}); err != nil {
log.Fatal(err)
}
// Wait for a message to come in
wg.Wait()
// Close the connection
ec.Close()
</code></pre>
</div>
<div class="tab__content">
<pre id="subscribe_json_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/SubscribeJSON.java#L12-57"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">class StockForJsonSub {
public String symbol;
public float price;
public String toString() {
return symbol &#43; &#34; is at &#34; &#43; price;
}
}
public class SubscribeJSON {
public static void main(String[] args) {
try {
Connection nc = Nats.connect(&#34;nats://demo.nats.io:4222&#34;);
// Use a latch to wait for 10 messages to arrive
CountDownLatch latch = new CountDownLatch(10);
// Create a dispatcher and inline message handler
Dispatcher d = nc.createDispatcher((msg) -&gt; {
Gson gson = new Gson();
String json = new String(msg.getData(), StandardCharsets.UTF_8);
StockForJsonSub stk = gson.fromJson(json, StockForJsonSub.class);
// Use the object
System.out.println(stk);
latch.countDown();
});
// Subscribe
d.subscribe(&#34;updates&#34;);
// Wait for a message to come in
latch.await();
// Close the connection
nc.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
</code></pre>
</div>
<div class="tab__content">
<pre id="subscribe_json_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/subscriber_samples.js#L76-88"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let nc = NATS.connect({
url: &#34;nats://demo.nats.io:4222&#34;,
json: true
});
nc.subscribe(&#39;updates&#39;, (msg) =&gt; {
if(msg &amp;&amp; msg.ticker === &#39;TSLA&#39;) {
t.log(&#39;got message:&#39;, msg);
}
});
</code></pre>
</div>
<div class="tab__content">
<pre id="subscribe_json_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/subscribe_json.py#L1-23"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">import asyncio
import json
from nats.aio.client import Client as NATS
from nats.aio.errors import ErrTimeout
async def run(loop):
nc = NATS()
await nc.connect(servers=[&#34;nats://127.0.0.1:4222&#34;], loop=loop)
async def message_handler(msg):
data = json.loads(msg.data.decode())
print(data)
sid = await nc.subscribe(&#34;updates&#34;, cb=message_handler)
await nc.flush()
await nc.auto_unsubscribe(sid, 2)
await nc.publish(&#34;updates&#34;, json.dumps({&#34;symbol&#34;: &#34;GOOG&#34;, &#34;price&#34;: 1200 }).encode())
await asyncio.sleep(1, loop=loop)
await nc.close()
</code></pre>
</div>
<div class="tab__content">
<pre id="subscribe_json_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/subscribe_json.rb#L1-13"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">require &#39;nats/client&#39;
require &#39;json&#39;
NATS.start(servers:[&#34;nats://127.0.0.1:4222&#34;]) do |nc|
nc.subscribe(&#34;updates&#34;) do |msg|
m = JSON.parse(msg)
# {&#34;symbol&#34;=&gt;&#34;GOOG&#34;, &#34;price&#34;=&gt;12}
p m
end
end
</code></pre>
</div>
<div class="tab__content">
<pre id="subscribe_json_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/subscriber_samples.ts#L70-80"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">let nc = await connect({
url: &#34;nats://demo.nats.io:4222&#34;,
payload: Payload.JSON
});
nc.subscribe(&#39;updates&#39;, (err, msg) =&gt; {
t.log(&#39;got message:&#39;, msg.data ? msg.data : &#34;no payload&#34;);
});
</code></pre>
</div>
</div>

View File

@ -1,143 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="subscribe_queue_go" name="subscribe_queue" class="tab" checked>
<label for="subscribe_queue_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="subscribe_queue_java" name="subscribe_queue" class="tab">
<label for="subscribe_queue_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="subscribe_queue_js" name="subscribe_queue" class="tab">
<label for="subscribe_queue_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="subscribe_queue_py" name="subscribe_queue" class="tab">
<label for="subscribe_queue_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="subscribe_queue_ruby" name="subscribe_queue" class="tab">
<label for="subscribe_queue_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="subscribe_queue_ts" name="subscribe_queue" class="tab">
<label for="subscribe_queue_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="subscribe_queue_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/subscribe_queue/main.go#L11-34"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">nc, err := nats.Connect(&#34;demo.nats.io&#34;)
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Use a WaitGroup to wait for 10 messages to arrive
wg := sync.WaitGroup{}
wg.Add(10)
// Create a queue subscription on &#34;updates&#34; with queue name &#34;workers&#34;
if _, err := nc.QueueSubscribe(&#34;updates&#34;, &#34;worker&#34;, func(m *nats.Msg) {
wg.Done()
}); err != nil {
log.Fatal(err)
}
// Wait for messages to come in
wg.Wait()
// Close the connection
nc.Close()
</code></pre>
</div>
<div class="tab__content">
<pre id="subscribe_queue_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/SubscribeQueue.java#L14-35"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Connection nc = Nats.connect(&#34;nats://demo.nats.io:4222&#34;);
// Use a latch to wait for 10 messages to arrive
CountDownLatch latch = new CountDownLatch(10);
// Create a dispatcher and inline message handler
Dispatcher d = nc.createDispatcher((msg) -&gt; {
String str = new String(msg.getData(), StandardCharsets.UTF_8);
System.out.println(str);
latch.countDown();
});
// Subscribe
d.subscribe(&#34;updates&#34;, &#34;workers&#34;);
// Wait for a message to come in
latch.await();
// Close the connection
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="subscribe_queue_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/subscriber_samples.js#L217-221"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">nc.subscribe(&#39;updates&#39;, {queue: &#34;workers&#34;}, (msg) =&gt; {
t.log(&#39;worker got message&#39;, msg);
});
</code></pre>
</div>
<div class="tab__content">
<pre id="subscribe_queue_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/subscribe_queue.py#L6-23"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
await nc.connect(servers=[&#34;nats://demo.nats.io:4222&#34;])
future = asyncio.Future()
async def cb(msg):
nonlocal future
future.set_result(msg)
await nc.subscribe(&#34;updates&#34;, queue=&#34;workers&#34;, cb=cb)
await nc.publish(&#34;updates&#34;, b&#39;All is Well&#39;)
msg = await asyncio.wait_for(future, 1)
print(&#34;Msg&#34;, msg)
</code></pre>
</div>
<div class="tab__content">
<pre id="subscribe_queue_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/subscribe_queue.rb#L1-21"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">require &#39;nats/client&#39;
require &#39;fiber&#39;
NATS.start(servers:[&#34;nats://127.0.0.1:4222&#34;]) do |nc|
Fiber.new do
f = Fiber.current
nc.subscribe(&#34;updates&#34;, queue: &#34;worker&#34;) do |msg, reply|
f.resume Time.now
end
nc.publish(&#34;updates&#34;, &#34;A&#34;)
# Use the response
msg = Fiber.yield
puts &#34;Msg: #{msg}&#34;
end.resume
end
</code></pre>
</div>
<div class="tab__content">
<pre id="subscribe_queue_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/subscriber_samples.ts#L193-197"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">await nc.subscribe(&#39;updates&#39;, (err, msg) =&gt; {
t.log(&#39;worker got message&#39;, msg.data);
}, {queue: &#34;workers&#34;});
</code></pre>
</div>
</div>

View File

@ -1,193 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="subscribe_star_go" name="subscribe_star" class="tab" checked>
<label for="subscribe_star_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="subscribe_star_java" name="subscribe_star" class="tab">
<label for="subscribe_star_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="subscribe_star_js" name="subscribe_star" class="tab">
<label for="subscribe_star_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="subscribe_star_py" name="subscribe_star" class="tab">
<label for="subscribe_star_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="subscribe_star_ruby" name="subscribe_star" class="tab">
<label for="subscribe_star_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="subscribe_star_ts" name="subscribe_star" class="tab">
<label for="subscribe_star_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="subscribe_star_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/subscribe_star/main.go#L11-35"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">nc, err := nats.Connect(&#34;demo.nats.io&#34;)
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Use a WaitGroup to wait for 2 messages to arrive
wg := sync.WaitGroup{}
wg.Add(2)
// Subscribe
if _, err := nc.Subscribe(&#34;time.*.east&#34;, func(m *nats.Msg) {
log.Printf(&#34;%s: %s&#34;, m.Subject, m.Data)
wg.Done()
}); err != nil {
log.Fatal(err)
}
// Wait for the 2 messages to come in
wg.Wait()
// Close the connection
nc.Close()
</code></pre>
</div>
<div class="tab__content">
<pre id="subscribe_star_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/SubscribeStar.java#L14-36"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Connection nc = Nats.connect(&#34;nats://demo.nats.io:4222&#34;);
// Use a latch to wait for 2 messages to arrive
CountDownLatch latch = new CountDownLatch(2);
// Create a dispatcher and inline message handler
Dispatcher d = nc.createDispatcher((msg) -&gt; {
String subject = msg.getSubject();
String str = new String(msg.getData(), StandardCharsets.UTF_8);
System.out.println(subject &#43; &#34;: &#34; &#43; str);
latch.countDown();
});
// Subscribe
d.subscribe(&#34;time.*.east&#34;);
// Wait for messages to come in
latch.await();
// Close the connection
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="subscribe_star_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/subscriber_samples.js#L134-157"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">nc.subscribe(&#39;time.us.*&#39;, (msg, reply, subject) =&gt; {
// converting timezones correctly in node requires a library
// this doesn&#39;t take into account *many* things.
let time = &#34;&#34;;
switch (subject) {
case &#39;time.us.east&#39;:
time = new Date().toLocaleTimeString(&#34;en-us&#34;, {timeZone: &#34;America/New_York&#34;});
break;
case &#39;time.us.central&#39;:
time = new Date().toLocaleTimeString(&#34;en-us&#34;, {timeZone: &#34;America/Chicago&#34;});
break;
case &#39;time.us.mountain&#39;:
time = new Date().toLocaleTimeString(&#34;en-us&#34;, {timeZone: &#34;America/Denver&#34;});
break;
case &#39;time.us.west&#39;:
time = new Date().toLocaleTimeString(&#34;en-us&#34;, {timeZone: &#34;America/Los_Angeles&#34;});
break;
default:
time = &#34;I don&#39;t know what you are talking about Willis&#34;;
}
t.log(subject, time);
});
</code></pre>
</div>
<div class="tab__content">
<pre id="subscribe_star_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/subscribe_star.py#L6-28"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
await nc.connect(servers=[&#34;nats://demo.nats.io:4222&#34;])
# Use queue to wait for 2 messages to arrive
queue = asyncio.Queue()
async def cb(msg):
await queue.put_nowait(msg)
await nc.subscribe(&#34;time.*.east&#34;, cb=cb)
# Send 2 messages and wait for them to come in
await nc.publish(&#34;time.A.east&#34;, b&#39;A&#39;)
await nc.publish(&#34;time.B.east&#34;, b&#39;B&#39;)
msg_A = await queue.get()
msg_B = await queue.get()
print(&#34;Msg A:&#34;, msg_A)
print(&#34;Msg B:&#34;, msg_B)
</code></pre>
</div>
<div class="tab__content">
<pre id="subscribe_star_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/subscribe_star.rb#L1-26"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">require &#39;nats/client&#39;
require &#39;fiber&#39;
NATS.start(servers:[&#34;nats://127.0.0.1:4222&#34;]) do |nc|
Fiber.new do
f = Fiber.current
nc.subscribe(&#34;time.*.east&#34;) do |msg, reply|
f.resume Time.now
end
nc.publish(&#34;time.A.east&#34;, &#34;A&#34;)
nc.publish(&#34;time.B.east&#34;, &#34;B&#34;)
# Use the response
msg_A = Fiber.yield
puts &#34;Msg A: #{msg_A}&#34;
msg_B = Fiber.yield
puts &#34;Msg B: #{msg_B}&#34;
end.resume
end
</code></pre>
</div>
<div class="tab__content">
<pre id="subscribe_star_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/subscriber_samples.ts#L119-142"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">await nc.subscribe(&#39;time.us.*&#39;, (err, msg) =&gt; {
// converting timezones correctly in node requires a library
// this doesn&#39;t take into account *many* things.
let time = &#34;&#34;;
switch (msg.subject) {
case &#39;time.us.east&#39;:
time = new Date().toLocaleTimeString(&#34;en-us&#34;, {timeZone: &#34;America/New_York&#34;});
break;
case &#39;time.us.central&#39;:
time = new Date().toLocaleTimeString(&#34;en-us&#34;, {timeZone: &#34;America/Chicago&#34;});
break;
case &#39;time.us.mountain&#39;:
time = new Date().toLocaleTimeString(&#34;en-us&#34;, {timeZone: &#34;America/Denver&#34;});
break;
case &#39;time.us.west&#39;:
time = new Date().toLocaleTimeString(&#34;en-us&#34;, {timeZone: &#34;America/Los_Angeles&#34;});
break;
default:
time = &#34;I don&#39;t know what you are talking about Willis&#34;;
}
console.log(msg.subject, time);
});
</code></pre>
</div>
</div>

View File

@ -1,100 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="subscribe_sync_go" name="subscribe_sync" class="tab" checked>
<label for="subscribe_sync_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="subscribe_sync_java" name="subscribe_sync" class="tab">
<label for="subscribe_sync_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="subscribe_sync_js" name="subscribe_sync" class="tab">
<label for="subscribe_sync_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="subscribe_sync_py" name="subscribe_sync" class="tab">
<label for="subscribe_sync_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="subscribe_sync_ruby" name="subscribe_sync" class="tab">
<label for="subscribe_sync_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="subscribe_sync_ts" name="subscribe_sync" class="tab">
<label for="subscribe_sync_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="subscribe_sync_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/subscribe_sync/main.go#L11-35"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">nc, err := nats.Connect(&#34;demo.nats.io&#34;)
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Subscribe
sub, err := nc.SubscribeSync(&#34;updates&#34;)
if err != nil {
log.Fatal(err)
}
// Wait for a message
msg, err := sub.NextMsg(10 * time.Second)
if err != nil {
log.Fatal(err)
}
// Use the response
log.Printf(&#34;Reply: %s&#34;, msg.Data)
// Close the connection
nc.Close()
</code></pre>
</div>
<div class="tab__content">
<pre id="subscribe_sync_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/SubscribeSync.java#L15-29"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Connection nc = Nats.connect(&#34;nats://demo.nats.io:4222&#34;);
// Subscribe
Subscription sub = nc.subscribe(&#34;updates&#34;);
// Read a message
Message msg = sub.nextMessage(Duration.ZERO);
String str = new String(msg.getData(), StandardCharsets.UTF_8);
System.out.println(str);
// Close the connection
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="subscribe_sync_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/subscriber_samples.js#L246-248"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// node-nats subscriptions are always async.
</code></pre>
</div>
<div class="tab__content">
<pre id="subscribe_sync_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/notapplicable.txt#L9-11"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python"># Asyncio NATS client currently does not have a sync subscribe API
</code></pre>
</div>
<div class="tab__content">
<pre id="subscribe_sync_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/notapplicable.txt#L13-15"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby"># The Ruby NATS client subscriptions are all async.
</code></pre>
</div>
<div class="tab__content">
<pre id="subscribe_sync_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/subscriber_samples.ts#L238-240"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// ts-nats subscriptions are always async.
</code></pre>
</div>
</div>

View File

@ -1,162 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="subscribe_w_reply_go" name="subscribe_w_reply" class="tab" checked>
<label for="subscribe_w_reply_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="subscribe_w_reply_java" name="subscribe_w_reply" class="tab">
<label for="subscribe_w_reply_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="subscribe_w_reply_js" name="subscribe_w_reply" class="tab">
<label for="subscribe_w_reply_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="subscribe_w_reply_py" name="subscribe_w_reply" class="tab">
<label for="subscribe_w_reply_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="subscribe_w_reply_ruby" name="subscribe_w_reply" class="tab">
<label for="subscribe_w_reply_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="subscribe_w_reply_ts" name="subscribe_w_reply" class="tab">
<label for="subscribe_w_reply_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="subscribe_w_reply_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/subscribe_w_reply/main.go#L11-39"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">nc, err := nats.Connect(&#34;demo.nats.io&#34;)
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Subscribe
sub, err := nc.SubscribeSync(&#34;time&#34;)
if err != nil {
log.Fatal(err)
}
// Read a message
msg, err := sub.NextMsg(10 * time.Second)
if err != nil {
log.Fatal(err)
}
// Get the time
timeAsBytes := []byte(time.Now().String())
// Send the time
nc.Publish(msg.Reply, timeAsBytes)
// Flush and close the connection
nc.Flush()
nc.Close()
</code></pre>
</div>
<div class="tab__content">
<pre id="subscribe_w_reply_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/SubscribeWithReply.java#L17-37"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Connection nc = Nats.connect(&#34;nats://demo.nats.io:4222&#34;);
// Subscribe
Subscription sub = nc.subscribe(&#34;time&#34;);
// Read a message
Message msg = sub.nextMessage(Duration.ZERO);
// Get the time
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(&#34;HH:mm:ss&#34;);
byte[] timeAsBytes = sdf.format(cal.getTime()).getBytes(StandardCharsets.UTF_8);
// Send the time
nc.publish(msg.getReplyTo(), timeAsBytes);
// Flush and close the connection
nc.flush(Duration.ZERO);
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="subscribe_w_reply_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/subscriber_samples.js#L28-35"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// set up a subscription to process a request
nc.subscribe(&#39;time&#39;, (msg, reply) =&gt; {
if (msg.reply) {
nc.publish(msg.reply, new Date().toLocaleTimeString());
}
});
</code></pre>
</div>
<div class="tab__content">
<pre id="subscribe_w_reply_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/subscribe_w_reply.py#L8-31"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
await nc.connect(servers=[&#34;nats://demo.nats.io:4222&#34;])
future = asyncio.Future()
async def cb(msg):
nonlocal future
future.set_result(msg)
await nc.subscribe(&#34;time&#34;, cb=cb)
await nc.publish_request(&#34;time&#34;, new_inbox(), b&#39;What is the time?&#39;)
await nc.flush()
# Read the message
msg = await asyncio.wait_for(future, 1)
# Send the time
time_as_bytes = &#34;{}&#34;.format(datetime.now()).encode()
await nc.publish(msg.reply, time_as_bytes)
</code></pre>
</div>
<div class="tab__content">
<pre id="subscribe_w_reply_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/subscribe_w_reply.rb#L1-22"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">require &#39;nats/client&#39;
require &#39;fiber&#39;
NATS.start(servers:[&#34;nats://127.0.0.1:4222&#34;]) do |nc|
Fiber.new do
f = Fiber.current
nc.subscribe(&#34;time&#34;) do |msg, reply|
f.resume Time.now
end
nc.publish(&#34;time&#34;, &#39;What is the time?&#39;, NATS.create_inbox)
# Use the response
msg = Fiber.yield
puts &#34;Reply: #{msg}&#34;
end.resume
end
</code></pre>
</div>
<div class="tab__content">
<pre id="subscribe_w_reply_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/subscriber_samples.ts#L29-38"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// set up a subscription to process a request
await nc.subscribe(&#39;time&#39;, (err, msg) =&gt; {
if (msg.reply) {
nc.publish(msg.reply, new Date().toLocaleTimeString());
} else {
t.log(&#39;got a request for the time, but no reply subject was set.&#39;);
}
});
</code></pre>
</div>
</div>

View File

@ -1,168 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="unsubscribe_go" name="unsubscribe" class="tab" checked>
<label for="unsubscribe_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="unsubscribe_java" name="unsubscribe" class="tab">
<label for="unsubscribe_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="unsubscribe_js" name="unsubscribe" class="tab">
<label for="unsubscribe_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="unsubscribe_py" name="unsubscribe" class="tab">
<label for="unsubscribe_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="unsubscribe_ruby" name="unsubscribe" class="tab">
<label for="unsubscribe_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="unsubscribe_ts" name="unsubscribe" class="tab">
<label for="unsubscribe_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="unsubscribe_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/unsubscribe/main.go#L10-37"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">nc, err := nats.Connect(&#34;demo.nats.io&#34;)
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Sync Subscription
sub, err := nc.SubscribeSync(&#34;updates&#34;)
if err != nil {
log.Fatal(err)
}
if err := sub.Unsubscribe(); err != nil {
log.Fatal(err)
}
// Async Subscription
sub, err = nc.Subscribe(&#34;updates&#34;, func(_ *nats.Msg) {})
if err != nil {
log.Fatal(err)
}
if err := sub.Unsubscribe(); err != nil {
log.Fatal(err)
}
// Close the connection
nc.Close()
</code></pre>
</div>
<div class="tab__content">
<pre id="unsubscribe_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/Unsubscribe.java#L14-31"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Connection nc = Nats.connect(&#34;nats://demo.nats.io:4222&#34;);
Dispatcher d = nc.createDispatcher((msg) -&gt; {
String str = new String(msg.getData(), StandardCharsets.UTF_8);
System.out.println(str);
});
// Sync Subscription
Subscription sub = nc.subscribe(&#34;updates&#34;);
sub.unsubscribe();
// Async Subscription
d.subscribe(&#34;updates&#34;);
d.unsubscribe(&#34;updates&#34;);
// Close the connection
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="unsubscribe_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/subscriber_samples.js#L54-65"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// set up a subscription to process a request
let sub = nc.subscribe(NATS.createInbox(), (msg, reply) =&gt; {
if (msg.reply) {
nc.publish(reply, new Date().toLocaleTimeString());
}
});
// without arguments the subscription will cancel when the server receives it
// you can also specify how many messages are expected by the subscription
nc.unsubscribe(sub);
</code></pre>
</div>
<div class="tab__content">
<pre id="unsubscribe_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/unsubscribe.py#L6-26"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
await nc.connect(servers=[&#34;nats://demo.nats.io:4222&#34;])
future = asyncio.Future()
async def cb(msg):
nonlocal future
future.set_result(msg)
sid = await nc.subscribe(&#34;updates&#34;, cb=cb)
await nc.publish(&#34;updates&#34;, b&#39;All is Well&#39;)
# Remove interest in subject
await nc.unsubscribe(sid)
# Won&#39;t be received...
await nc.publish(&#34;updates&#34;, b&#39;...&#39;)
</code></pre>
</div>
<div class="tab__content">
<pre id="unsubscribe_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/unsubscribe.rb#L1-27"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">require &#39;nats/client&#39;
require &#39;fiber&#39;
NATS.start(servers:[&#34;nats://127.0.0.1:4222&#34;]) do |nc|
Fiber.new do
f = Fiber.current
sid = nc.subscribe(&#34;time&#34;) do |msg, reply|
f.resume Time.now
end
nc.publish(&#34;time&#34;, &#39;What is the time?&#39;, NATS.create_inbox)
# Use the response
msg = Fiber.yield
puts &#34;Reply: #{msg}&#34;
nc.unsubscribe(sid)
# Won&#39;t be received
nc.publish(&#34;time&#34;, &#39;What is the time?&#39;, NATS.create_inbox)
end.resume
end
</code></pre>
</div>
<div class="tab__content">
<pre id="unsubscribe_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/subscriber_samples.ts#L51-64"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// set up a subscription to process a request
let sub = await nc.subscribe(createInbox(), (err, msg) =&gt; {
if (msg.reply) {
nc.publish(msg.reply, new Date().toLocaleTimeString());
} else {
t.log(&#39;got a request for the time, but no reply subject was set.&#39;);
}
});
// without arguments the subscription will cancel when the server receives it
// you can also specify how many messages are expected by the subscription
sub.unsubscribe();
</code></pre>
</div>
</div>

View File

@ -1,167 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="unsubscribe_auto_go" name="unsubscribe_auto" class="tab" checked>
<label for="unsubscribe_auto_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="unsubscribe_auto_java" name="unsubscribe_auto" class="tab">
<label for="unsubscribe_auto_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="unsubscribe_auto_js" name="unsubscribe_auto" class="tab">
<label for="unsubscribe_auto_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="unsubscribe_auto_py" name="unsubscribe_auto" class="tab">
<label for="unsubscribe_auto_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="unsubscribe_auto_ruby" name="unsubscribe_auto" class="tab">
<label for="unsubscribe_auto_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="unsubscribe_auto_ts" name="unsubscribe_auto" class="tab">
<label for="unsubscribe_auto_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="unsubscribe_auto_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/unsubscribe_auto/main.go#L10-37"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">nc, err := nats.Connect(&#34;demo.nats.io&#34;)
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// Sync Subscription
sub, err := nc.SubscribeSync(&#34;updates&#34;)
if err != nil {
log.Fatal(err)
}
if err := sub.AutoUnsubscribe(1); err != nil {
log.Fatal(err)
}
// Async Subscription
sub, err = nc.Subscribe(&#34;updates&#34;, func(_ *nats.Msg) {})
if err != nil {
log.Fatal(err)
}
if err := sub.AutoUnsubscribe(1); err != nil {
log.Fatal(err)
}
// Close the connection
nc.Close()
</code></pre>
</div>
<div class="tab__content">
<pre id="unsubscribe_auto_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/AutoUnsubscribe.java#L14-31"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Connection nc = Nats.connect(&#34;nats://demo.nats.io:4222&#34;);
Dispatcher d = nc.createDispatcher((msg) -&gt; {
String str = new String(msg.getData(), StandardCharsets.UTF_8);
System.out.println(str);
});
// Sync Subscription
Subscription sub = nc.subscribe(&#34;updates&#34;);
sub.unsubscribe(1);
// Async Subscription
d.subscribe(&#34;updates&#34;);
d.unsubscribe(&#34;updates&#34;, 1);
// Close the connection
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="unsubscribe_auto_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/subscriber_samples.js#L105-120"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// `max` specifies the number of messages that the server will forward.
// The server will auto-cancel.
let opts = {max: 10};
let sub = nc.subscribe(NATS.createInbox(), opts, (msg) =&gt; {
t.log(msg);
});
// another way after 10 messages
let sub2 = nc.subscribe(NATS.createInbox(), (err, msg) =&gt; {
t.log(msg.data);
});
// if the subscription already received 10 messages, the handler
// won&#39;t get any more messages
nc.unsubscribe(sub2, 10);
</code></pre>
</div>
<div class="tab__content">
<pre id="unsubscribe_auto_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/unsubscribe_auto.py#L6-21"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
await nc.connect(servers=[&#34;nats://demo.nats.io:4222&#34;])
async def cb(msg):
print(msg)
sid = await nc.subscribe(&#34;updates&#34;, cb=cb)
await nc.auto_unsubscribe(sid, 1)
await nc.publish(&#34;updates&#34;, b&#39;All is Well&#39;)
# Won&#39;t be received...
await nc.publish(&#34;updates&#34;, b&#39;...&#39;)
</code></pre>
</div>
<div class="tab__content">
<pre id="unsubscribe_auto_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/unsubscribe_auto.rb#L1-25"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">require &#39;nats/client&#39;
require &#39;fiber&#39;
NATS.start(servers:[&#34;nats://127.0.0.1:4222&#34;]) do |nc|
Fiber.new do
f = Fiber.current
nc.subscribe(&#34;time&#34;, max: 1) do |msg, reply|
f.resume Time.now
end
nc.publish(&#34;time&#34;, &#39;What is the time?&#39;, NATS.create_inbox)
# Use the response
msg = Fiber.yield
puts &#34;Reply: #{msg}&#34;
# Won&#39;t be received
nc.publish(&#34;time&#34;, &#39;What is the time?&#39;, NATS.create_inbox)
end.resume
end
</code></pre>
</div>
<div class="tab__content">
<pre id="unsubscribe_auto_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/subscriber_samples.ts#L94-109"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">// `max` specifies the number of messages that the server will forward.
// The server will auto-cancel.
let opts = {max: 10};
let sub = await nc.subscribe(createInbox(), (err, msg) =&gt; {
t.log(msg.data);
}, opts);
// another way after 10 messages
let sub2 = await nc.subscribe(createInbox(), (err, msg) =&gt; {
t.log(msg.data);
});
// if the subscription already received 10 messages, the handler
// won&#39;t get any more messages
sub2.unsubscribe(10);
</code></pre>
</div>
</div>

View File

@ -1,134 +0,0 @@
<div class="tab-wrap">
<input type="radio" id="wildcard_tester_go" name="wildcard_tester" class="tab" checked>
<label for="wildcard_tester_go" class="api-lang" data-language="go">Go</label>
<input type="radio" id="wildcard_tester_java" name="wildcard_tester" class="tab">
<label for="wildcard_tester_java" class="api-lang" data-language="java">Java</label>
<input type="radio" id="wildcard_tester_js" name="wildcard_tester" class="tab">
<label for="wildcard_tester_js" class="api-lang" data-language="js">JavaScript</label>
<input type="radio" id="wildcard_tester_py" name="wildcard_tester" class="tab">
<label for="wildcard_tester_py" class="api-lang" data-language="py">Python</label>
<input type="radio" id="wildcard_tester_ruby" name="wildcard_tester" class="tab">
<label for="wildcard_tester_ruby" class="api-lang" data-language="ruby">Ruby</label>
<input type="radio" id="wildcard_tester_ts" name="wildcard_tester" class="tab">
<label for="wildcard_tester_ts" class="api-lang" data-language="ts">TypeScript</label>
<div class="tab__content">
<pre id="wildcard_tester_go_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/go-nats-examples/blob/master/api-examples/wildcard_tester/main.go#L11-41"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-go">nc, err := nats.Connect(&#34;demo.nats.io&#34;)
if err != nil {
log.Fatal(err)
}
defer nc.Close()
zoneID, err := time.LoadLocation(&#34;America/New_York&#34;)
if err != nil {
log.Fatal(err)
}
now := time.Now()
zoneDateTime := now.In(zoneID)
formatted := zoneDateTime.String()
nc.Publish(&#34;time.us.east&#34;, []byte(formatted))
nc.Publish(&#34;time.us.east.atlanta&#34;, []byte(formatted))
zoneID, err = time.LoadLocation(&#34;Europe/Warsaw&#34;)
if err != nil {
log.Fatal(err)
}
zoneDateTime = now.In(zoneID)
formatted = zoneDateTime.String()
nc.Publish(&#34;time.eu.east&#34;, []byte(formatted))
nc.Publish(&#34;time.eu.east.warsaw&#34;, []byte(formatted))
// Close the connection
nc.Close()
</code></pre>
</div>
<div class="tab__content">
<pre id="wildcard_tester_java_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/java-nats-examples/blob/master/src/main/java/io/nats/examples/PublishForWildcards.java#L17-34"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-java">Connection nc = Nats.connect(&#34;nats://demo.nats.io:4222&#34;);
ZoneId zoneId = ZoneId.of(&#34;America/New_York&#34;);
ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(Instant.now(), zoneId);
String formatted = zonedDateTime.format(DateTimeFormatter.ISO_ZONED_DATE_TIME);
nc.publish(&#34;time.us.east&#34;, formatted.getBytes(StandardCharsets.UTF_8));
nc.publish(&#34;time.us.east.atlanta&#34;, formatted.getBytes(StandardCharsets.UTF_8));
zoneId = ZoneId.of(&#34;Europe/Warsaw&#34;);
zonedDateTime = ZonedDateTime.ofInstant(Instant.now(), zoneId);
formatted = zonedDateTime.format(DateTimeFormatter.ISO_ZONED_DATE_TIME);
nc.publish(&#34;time.eu.east&#34;, formatted.getBytes(StandardCharsets.UTF_8));
nc.publish(&#34;time.eu.east.warsaw&#34;, formatted.getBytes(StandardCharsets.UTF_8));
nc.flush(Duration.ZERO);
nc.close();
</code></pre>
</div>
<div class="tab__content">
<pre id="wildcard_tester_js_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/node-nats-examples/blob/master/src/publisher_samples.js#L138-143"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">nc.publish(&#39;time.us.east&#39;);
nc.publish(&#39;time.us.central&#39;);
nc.publish(&#39;time.us.mountain&#39;);
nc.publish(&#39;time.us.west&#39;);
</code></pre>
</div>
<div class="tab__content">
<pre id="wildcard_tester_py_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/asyncio-nats-examples/blob/master/wildcard_tester.py#L6-19"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-python">nc = NATS()
await nc.connect(servers=[&#34;nats://demo.nats.io:4222&#34;])
await nc.publish(&#34;time.us.east&#34;, b&#39;...&#39;)
await nc.publish(&#34;time.us.east.atlanta&#34;, b&#39;...&#39;)
await nc.publish(&#34;time.eu.east&#34;, b&#39;...&#39;)
await nc.publish(&#34;time.eu.east.warsaw&#34;, b&#39;...&#39;)
await nc.close()
</code></pre>
</div>
<div class="tab__content">
<pre id="wildcard_tester_ruby_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ruby-nats-examples/blob/master/wildcard_tester.rb#L2-12"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-ruby">NATS.start do |nc|
nc.publish(&#34;time.us.east&#34;, &#39;...&#39;)
nc.publish(&#34;time.us.east.atlanta&#34;, &#39;...&#39;)
nc.publish(&#34;time.eu.east&#34;, &#39;...&#39;)
nc.publish(&#34;time.eu.east.warsaw&#34;, &#39;...&#39;)
nc.drain
end
</code></pre>
</div>
<div class="tab__content">
<pre id="wildcard_tester_ts_content"><a class="toolbar-icons pull-right" target="_blank" href="https://github.com/nats-io/ts-nats-examples/blob/master/src/publisher_samples.ts#L139-144"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="language-javascript">nc.publish(&#39;time.us.east&#39;);
nc.publish(&#39;time.us.central&#39;);
nc.publish(&#39;time.us.mountain&#39;);
nc.publish(&#39;time.us.west&#39;);
</code></pre>
</div>
</div>

View File

@ -61,7 +61,7 @@
<link rel="next" href="connecting.html" />
<link rel="prev" href="../nats_server/clients.html" />
<link rel="prev" href="../nats_server/upgrading.html" />
<link rel="stylesheet" href="https://cdn.materialdesignicons.com/3.6.95/css/materialdesignicons.min.css">
@ -104,9 +104,10 @@
</li>
<ul class="articles">
<li class="chapter " data-level="1.2" data-path="../nats_server/">
<li class="chapter " data-level="1.1.1" data-path="../nats_server/">
<a href="../nats_server/">
@ -120,7 +121,7 @@
<ul class="articles">
<li class="chapter " data-level="1.2.1" data-path="../nats_server/installation.html">
<li class="chapter " data-level="1.1.1.1" data-path="../nats_server/installation.html">
<a href="../nats_server/installation.html">
@ -133,7 +134,7 @@
</li>
<li class="chapter " data-level="1.2.2" data-path="../nats_server/running.html">
<li class="chapter " data-level="1.1.1.2" data-path="../nats_server/running.html">
<a href="../nats_server/running.html">
@ -146,7 +147,7 @@
</li>
<li class="chapter " data-level="1.2.3" data-path="../nats_server/clients.html">
<li class="chapter " data-level="1.1.1.3" data-path="../nats_server/clients.html">
<a href="../nats_server/clients.html">
@ -157,6 +158,139 @@
</li>
<li class="chapter " data-level="1.1.1.4" data-path="../nats_server/flags.html">
<a href="../nats_server/flags.html">
Flags
</a>
</li>
<li class="chapter " data-level="1.1.1.5" data-path="../nats_server/configuration.html">
<a href="../nats_server/configuration.html">
Configuration File
</a>
<ul class="articles">
<li class="chapter " data-level="1.1.1.5.1" data-path="../nats_server/authentication.html">
<a href="../nats_server/authentication.html">
Authentication
</a>
</li>
<li class="chapter " data-level="1.1.1.5.2" data-path="../nats_server/authorization.html">
<a href="../nats_server/authorization.html">
Authorization
</a>
</li>
<li class="chapter " data-level="1.1.1.5.3" data-path="../nats_server/clustering.html">
<a href="../nats_server/clustering.html">
Clustering
</a>
</li>
<li class="chapter " data-level="1.1.1.5.4" data-path="../nats_server/tls.html">
<a href="../nats_server/tls.html">
TLS Security
</a>
</li>
<li class="chapter " data-level="1.1.1.5.5" data-path="../nats_server/logging.html">
<a href="../nats_server/logging.html">
Logging
</a>
</li>
<li class="chapter " data-level="1.1.1.5.6" data-path="../nats_server/monitoring.html">
<a href="../nats_server/monitoring.html">
Monitoring
</a>
<ul class="articles">
<li class="chapter " data-level="1.1.1.5.6.1" data-path="../nats_server/natstop.html">
<a href="../nats_server/natstop.html">
Statistics
</a>
<ul class="articles">
<li class="chapter " data-level="1.1.1.5.6.1.1" data-path="../nats_server/nats_top_tutorial.html">
<a href="../nats_server/nats_top_tutorial.html">
NATS Top Tutorial
</a>
</li>
@ -164,7 +298,66 @@
</li>
<li class="chapter active" data-level="1.3" data-path="./">
</ul>
</li>
</ul>
</li>
<li class="chapter " data-level="1.1.1.6" data-path="../nats_server/signals.html">
<a href="../nats_server/signals.html">
Signals
</a>
</li>
<li class="chapter " data-level="1.1.1.7" data-path="../nats_server/windows_srv.html">
<a href="../nats_server/windows_srv.html">
Window Service
</a>
</li>
<li class="chapter " data-level="1.1.1.8" data-path="../nats_server/upgrading.html">
<a href="../nats_server/upgrading.html">
Upgrading a Cluster
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="chapter active" data-level="1.2" data-path="./">
<a href="./">
@ -178,7 +371,7 @@
<ul class="articles">
<li class="chapter " data-level="1.3.1" data-path="connecting.html">
<li class="chapter " data-level="1.2.1" data-path="connecting.html">
<a href="connecting.html">
@ -372,7 +565,7 @@ digraph nats_queues {
<a href="../nats_server/clients.html" class="navigation navigation-prev " aria-label="Previous page: Clients">
<a href="../nats_server/upgrading.html" class="navigation navigation-prev " aria-label="Previous page: Upgrading a Cluster">
<i class="fa fa-angle-left"></i>
</a>
@ -388,7 +581,7 @@ digraph nats_queues {
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"Developing with NATS","level":"1.3","depth":1,"next":{"title":"Connecting","level":"1.3.1","depth":2,"path":"developer/connecting.md","ref":"developer/connecting.md","articles":[]},"previous":{"title":"Clients","level":"1.2.3","depth":2,"path":"nats_server/clients.md","ref":"nats_server/clients.md","articles":[]},"dir":"ltr"},"config":{"plugins":["prism","-highlight","include-html"],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"prism":{},"include-html":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","author":"The NATS Maintainers","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"NATS","gitbook":"*","description":"Administrative, developer and conceptual documentation for the NATS messaging system."},"file":{"path":"developer/README.md","mtime":"2019-05-14T18:47:55.355Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-05-15T17:41:03.846Z"},"basePath":"..","book":{"language":""}});
gitbook.page.hasChanged({"page":{"title":"Developing with NATS","level":"1.2","depth":1,"next":{"title":"Connecting","level":"1.2.1","depth":2,"path":"developer/connecting.md","ref":"developer/connecting.md","articles":[]},"previous":{"title":"Upgrading a Cluster","level":"1.1.1.8","depth":3,"path":"nats_server/upgrading.md","ref":"nats_server/upgrading.md","articles":[]},"dir":"ltr"},"config":{"plugins":["prism","-highlight","include-html"],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"prism":{},"include-html":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","author":"The NATS Maintainers","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"NATS","gitbook":"*","description":"Administrative, developer and conceptual documentation for the NATS messaging system."},"file":{"path":"developer/README.md","mtime":"2019-05-15T15:14:27.336Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-05-15T19:18:57.723Z"},"basePath":"..","book":{"language":""}});
});
</script>
</div>

View File

@ -102,9 +102,10 @@
</li>
<ul class="articles">
<li class="chapter " data-level="1.2" data-path="nats_server/">
<li class="chapter " data-level="1.1.1" data-path="nats_server/">
<a href="nats_server/">
@ -118,7 +119,7 @@
<ul class="articles">
<li class="chapter " data-level="1.2.1" data-path="nats_server/installation.html">
<li class="chapter " data-level="1.1.1.1" data-path="nats_server/installation.html">
<a href="nats_server/installation.html">
@ -131,7 +132,7 @@
</li>
<li class="chapter " data-level="1.2.2" data-path="nats_server/running.html">
<li class="chapter " data-level="1.1.1.2" data-path="nats_server/running.html">
<a href="nats_server/running.html">
@ -144,7 +145,7 @@
</li>
<li class="chapter " data-level="1.2.3" data-path="nats_server/clients.html">
<li class="chapter " data-level="1.1.1.3" data-path="nats_server/clients.html">
<a href="nats_server/clients.html">
@ -155,6 +156,139 @@
</li>
<li class="chapter " data-level="1.1.1.4" data-path="nats_server/flags.html">
<a href="nats_server/flags.html">
Flags
</a>
</li>
<li class="chapter " data-level="1.1.1.5" data-path="nats_server/configuration.html">
<a href="nats_server/configuration.html">
Configuration File
</a>
<ul class="articles">
<li class="chapter " data-level="1.1.1.5.1" data-path="nats_server/authentication.html">
<a href="nats_server/authentication.html">
Authentication
</a>
</li>
<li class="chapter " data-level="1.1.1.5.2" data-path="nats_server/authorization.html">
<a href="nats_server/authorization.html">
Authorization
</a>
</li>
<li class="chapter " data-level="1.1.1.5.3" data-path="nats_server/clustering.html">
<a href="nats_server/clustering.html">
Clustering
</a>
</li>
<li class="chapter " data-level="1.1.1.5.4" data-path="nats_server/tls.html">
<a href="nats_server/tls.html">
TLS Security
</a>
</li>
<li class="chapter " data-level="1.1.1.5.5" data-path="nats_server/logging.html">
<a href="nats_server/logging.html">
Logging
</a>
</li>
<li class="chapter " data-level="1.1.1.5.6" data-path="nats_server/monitoring.html">
<a href="nats_server/monitoring.html">
Monitoring
</a>
<ul class="articles">
<li class="chapter " data-level="1.1.1.5.6.1" data-path="nats_server/natstop.html">
<a href="nats_server/natstop.html">
Statistics
</a>
<ul class="articles">
<li class="chapter " data-level="1.1.1.5.6.1.1" data-path="nats_server/nats_top_tutorial.html">
<a href="nats_server/nats_top_tutorial.html">
NATS Top Tutorial
</a>
</li>
@ -162,7 +296,66 @@
</li>
<li class="chapter " data-level="1.3" data-path="developer/">
</ul>
</li>
</ul>
</li>
<li class="chapter " data-level="1.1.1.6" data-path="nats_server/signals.html">
<a href="nats_server/signals.html">
Signals
</a>
</li>
<li class="chapter " data-level="1.1.1.7" data-path="nats_server/windows_srv.html">
<a href="nats_server/windows_srv.html">
Window Service
</a>
</li>
<li class="chapter " data-level="1.1.1.8" data-path="nats_server/upgrading.html">
<a href="nats_server/upgrading.html">
Upgrading a Cluster
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="chapter " data-level="1.2" data-path="developer/">
<a href="developer/">
@ -176,7 +369,7 @@
<ul class="articles">
<li class="chapter " data-level="1.3.1" data-path="developer/connecting.html">
<li class="chapter " data-level="1.2.1" data-path="developer/connecting.html">
<a href="developer/connecting.html">
@ -279,7 +472,7 @@
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"Introduction","level":"1.1","depth":1,"next":{"title":"NATS Server","level":"1.2","depth":1,"path":"nats_server/README.md","ref":"nats_server/README.md","articles":[{"title":"Installing","level":"1.2.1","depth":2,"path":"nats_server/installation.md","ref":"nats_server/installation.md","articles":[]},{"title":"Running","level":"1.2.2","depth":2,"path":"nats_server/running.md","ref":"nats_server/running.md","articles":[]},{"title":"Clients","level":"1.2.3","depth":2,"path":"nats_server/clients.md","ref":"nats_server/clients.md","articles":[]}]},"dir":"ltr"},"config":{"plugins":["prism","-highlight","include-html"],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"prism":{},"include-html":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","author":"The NATS Maintainers","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"NATS","gitbook":"*","description":"Administrative, developer and conceptual documentation for the NATS messaging system."},"file":{"path":"README.md","mtime":"2019-05-13T22:01:38.511Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-05-15T17:41:03.846Z"},"basePath":".","book":{"language":""}});
gitbook.page.hasChanged({"page":{"title":"Introduction","level":"1.1","depth":1,"next":{"title":"NATS Server","level":"1.1.1","depth":2,"path":"nats_server/README.md","ref":"nats_server/README.md","articles":[{"title":"Installing","level":"1.1.1.1","depth":3,"path":"nats_server/installation.md","ref":"nats_server/installation.md","articles":[]},{"title":"Running","level":"1.1.1.2","depth":3,"path":"nats_server/running.md","ref":"nats_server/running.md","articles":[]},{"title":"Clients","level":"1.1.1.3","depth":3,"path":"nats_server/clients.md","ref":"nats_server/clients.md","articles":[]},{"title":"Flags","level":"1.1.1.4","depth":3,"path":"nats_server/flags.md","ref":"nats_server/flags.md","articles":[]},{"title":"Configuration File","level":"1.1.1.5","depth":3,"path":"nats_server/configuration.md","ref":"nats_server/configuration.md","articles":[{"title":"Authentication","level":"1.1.1.5.1","depth":4,"path":"nats_server/authentication.md","ref":"nats_server/authentication.md","articles":[]},{"title":"Authorization","level":"1.1.1.5.2","depth":4,"path":"nats_server/authorization.md","ref":"nats_server/authorization.md","articles":[]},{"title":"Clustering","level":"1.1.1.5.3","depth":4,"path":"nats_server/clustering.md","ref":"nats_server/clustering.md","articles":[]},{"title":"TLS Security","level":"1.1.1.5.4","depth":4,"path":"nats_server/tls.md","ref":"nats_server/tls.md","articles":[]},{"title":"Logging","level":"1.1.1.5.5","depth":4,"path":"nats_server/logging.md","ref":"nats_server/logging.md","articles":[]},{"title":"Monitoring","level":"1.1.1.5.6","depth":4,"path":"nats_server/monitoring.md","ref":"nats_server/monitoring.md","articles":[{"title":"Statistics","level":"1.1.1.5.6.1","depth":5,"path":"nats_server/natstop.md","ref":"nats_server/natstop.md","articles":[{"title":"NATS Top Tutorial","level":"1.1.1.5.6.1.1","depth":6,"path":"nats_server/nats_top_tutorial.md","ref":"nats_server/nats_top_tutorial.md","articles":[]}]}]}]},{"title":"Signals","level":"1.1.1.6","depth":3,"path":"nats_server/signals.md","ref":"nats_server/signals.md","articles":[]},{"title":"Window Service","level":"1.1.1.7","depth":3,"path":"nats_server/windows_srv.md","ref":"nats_server/windows_srv.md","articles":[]},{"title":"Upgrading a Cluster","level":"1.1.1.8","depth":3,"path":"nats_server/upgrading.md","ref":"nats_server/upgrading.md","articles":[]}]},"dir":"ltr"},"config":{"plugins":["prism","-highlight","include-html"],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"prism":{},"include-html":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","author":"The NATS Maintainers","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"NATS","gitbook":"*","description":"Administrative, developer and conceptual documentation for the NATS messaging system."},"file":{"path":"README.md","mtime":"2019-05-13T13:59:31.118Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-05-15T19:18:57.723Z"},"basePath":".","book":{"language":""}});
});
</script>
</div>

View File

@ -58,7 +58,7 @@
<link rel="shortcut icon" href="../gitbook/images/favicon.ico" type="image/x-icon">
<link rel="next" href="../developer/" />
<link rel="next" href="flags.html" />
<link rel="prev" href="running.html" />
@ -104,9 +104,10 @@
</li>
<ul class="articles">
<li class="chapter " data-level="1.2" data-path="./">
<li class="chapter " data-level="1.1.1" data-path="./">
<a href="./">
@ -120,7 +121,7 @@
<ul class="articles">
<li class="chapter " data-level="1.2.1" data-path="installation.html">
<li class="chapter " data-level="1.1.1.1" data-path="installation.html">
<a href="installation.html">
@ -133,7 +134,7 @@
</li>
<li class="chapter " data-level="1.2.2" data-path="running.html">
<li class="chapter " data-level="1.1.1.2" data-path="running.html">
<a href="running.html">
@ -146,7 +147,7 @@
</li>
<li class="chapter active" data-level="1.2.3" data-path="clients.html">
<li class="chapter active" data-level="1.1.1.3" data-path="clients.html">
<a href="clients.html">
@ -157,6 +158,139 @@
</li>
<li class="chapter " data-level="1.1.1.4" data-path="flags.html">
<a href="flags.html">
Flags
</a>
</li>
<li class="chapter " data-level="1.1.1.5" data-path="configuration.html">
<a href="configuration.html">
Configuration File
</a>
<ul class="articles">
<li class="chapter " data-level="1.1.1.5.1" data-path="authentication.html">
<a href="authentication.html">
Authentication
</a>
</li>
<li class="chapter " data-level="1.1.1.5.2" data-path="authorization.html">
<a href="authorization.html">
Authorization
</a>
</li>
<li class="chapter " data-level="1.1.1.5.3" data-path="clustering.html">
<a href="clustering.html">
Clustering
</a>
</li>
<li class="chapter " data-level="1.1.1.5.4" data-path="tls.html">
<a href="tls.html">
TLS Security
</a>
</li>
<li class="chapter " data-level="1.1.1.5.5" data-path="logging.html">
<a href="logging.html">
Logging
</a>
</li>
<li class="chapter " data-level="1.1.1.5.6" data-path="monitoring.html">
<a href="monitoring.html">
Monitoring
</a>
<ul class="articles">
<li class="chapter " data-level="1.1.1.5.6.1" data-path="natstop.html">
<a href="natstop.html">
Statistics
</a>
<ul class="articles">
<li class="chapter " data-level="1.1.1.5.6.1.1" data-path="nats_top_tutorial.html">
<a href="nats_top_tutorial.html">
NATS Top Tutorial
</a>
</li>
@ -164,7 +298,66 @@
</li>
<li class="chapter " data-level="1.3" data-path="../developer/">
</ul>
</li>
</ul>
</li>
<li class="chapter " data-level="1.1.1.6" data-path="signals.html">
<a href="signals.html">
Signals
</a>
</li>
<li class="chapter " data-level="1.1.1.7" data-path="windows_srv.html">
<a href="windows_srv.html">
Window Service
</a>
</li>
<li class="chapter " data-level="1.1.1.8" data-path="upgrading.html">
<a href="upgrading.html">
Upgrading a Cluster
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="chapter " data-level="1.2" data-path="../developer/">
<a href="../developer/">
@ -178,7 +371,7 @@
<ul class="articles">
<li class="chapter " data-level="1.3.1" data-path="../developer/connecting.html">
<li class="chapter " data-level="1.2.1" data-path="../developer/connecting.html">
<a href="../developer/connecting.html">
@ -248,7 +441,7 @@
<pre class="language-"><code>&gt; go get https://github.com/nats-io/go-nats-examples/tools/nats-pub
&gt; go get https://github.com/nats-io/go-nats-examples/tools/nats-sub
</code></pre><h3 id="or-download-a-zip-file">Or download a zip file</h3>
<p>You can pre-built binaries from the <a href="https://github.com/nats-io/go-nats-examples/releases/tag/0.0.50" target="_blank">go-nats-examples repo</a></p>
<p>You can install pre-built binaries from the <a href="https://github.com/nats-io/go-nats-examples/releases/tag/0.0.50" target="_blank">go-nats-examples repo</a></p>
<h3 id="testing-your-setup">Testing your setup</h3>
<p>First <a href="running.html">start a nats-server</a>. Then you can on two different terminal windows:</p>
<p>Start a subscriber:</p>
@ -291,7 +484,7 @@ Published [hello] : &apos;world&apos;
</a>
<a href="../developer/" class="navigation navigation-next " aria-label="Next page: Developing with NATS">
<a href="flags.html" class="navigation navigation-next " aria-label="Next page: Flags">
<i class="fa fa-angle-right"></i>
</a>
@ -302,7 +495,7 @@ Published [hello] : &apos;world&apos;
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"Clients","level":"1.2.3","depth":2,"next":{"title":"Developing with NATS","level":"1.3","depth":1,"path":"developer/README.md","ref":"developer/README.md","articles":[{"title":"Connecting","level":"1.3.1","depth":2,"path":"developer/connecting.md","ref":"developer/connecting.md","articles":[]}]},"previous":{"title":"Running","level":"1.2.2","depth":2,"path":"nats_server/running.md","ref":"nats_server/running.md","articles":[]},"dir":"ltr"},"config":{"plugins":["prism","-highlight","include-html"],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"prism":{},"include-html":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","author":"The NATS Maintainers","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"NATS","gitbook":"*","description":"Administrative, developer and conceptual documentation for the NATS messaging system."},"file":{"path":"nats_server/clients.md","mtime":"2019-05-13T22:01:38.527Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-05-15T17:41:03.846Z"},"basePath":"..","book":{"language":""}});
gitbook.page.hasChanged({"page":{"title":"Clients","level":"1.1.1.3","depth":3,"next":{"title":"Flags","level":"1.1.1.4","depth":3,"path":"nats_server/flags.md","ref":"nats_server/flags.md","articles":[]},"previous":{"title":"Running","level":"1.1.1.2","depth":3,"path":"nats_server/running.md","ref":"nats_server/running.md","articles":[]},"dir":"ltr"},"config":{"plugins":["prism","-highlight","include-html"],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"prism":{},"include-html":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","author":"The NATS Maintainers","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"NATS","gitbook":"*","description":"Administrative, developer and conceptual documentation for the NATS messaging system."},"file":{"path":"nats_server/clients.md","mtime":"2019-05-15T15:23:23.283Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-05-15T19:18:57.723Z"},"basePath":"..","book":{"language":""}});
});
</script>
</div>

View File

@ -4,11 +4,11 @@
<head>
<meta charset="UTF-8">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>Configuration File · GitBook</title>
<title>Configuration File · NATS</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="description" content="">
<meta name="generator" content="GitBook 3.2.3">
<meta name="author" content="The NATS Maintainers">
@ -58,7 +58,7 @@
<link rel="shortcut icon" href="../gitbook/images/favicon.ico" type="image/x-icon">
<link rel="next" href="signals.html" />
<link rel="next" href="authentication.html" />
<link rel="prev" href="flags.html" />
@ -184,6 +184,128 @@
<ul class="articles">
<li class="chapter " data-level="1.1.1.5.1" data-path="authentication.html">
<a href="authentication.html">
Authentication
</a>
</li>
<li class="chapter " data-level="1.1.1.5.2" data-path="authorization.html">
<a href="authorization.html">
Authorization
</a>
</li>
<li class="chapter " data-level="1.1.1.5.3" data-path="clustering.html">
<a href="clustering.html">
Clustering
</a>
</li>
<li class="chapter " data-level="1.1.1.5.4" data-path="tls.html">
<a href="tls.html">
TLS Security
</a>
</li>
<li class="chapter " data-level="1.1.1.5.5" data-path="logging.html">
<a href="logging.html">
Logging
</a>
</li>
<li class="chapter " data-level="1.1.1.5.6" data-path="monitoring.html">
<a href="monitoring.html">
Monitoring
</a>
<ul class="articles">
<li class="chapter " data-level="1.1.1.5.6.1" data-path="natstop.html">
<a href="natstop.html">
Statistics
</a>
<ul class="articles">
<li class="chapter " data-level="1.1.1.5.6.1.1" data-path="nats_top_tutorial.html">
<a href="nats_top_tutorial.html">
NATS Top Tutorial
</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="chapter " data-level="1.1.1.6" data-path="signals.html">
@ -210,6 +332,19 @@
</li>
<li class="chapter " data-level="1.1.1.8" data-path="upgrading.html">
<a href="upgrading.html">
Upgrading a Cluster
</a>
</li>
@ -303,8 +438,8 @@
<p>The NATS server products provide a flexible configuration format that combines the best of traditional formats and newer styles such as JSON and YAML.</p>
<p>The config file supports the following syntax:</p>
<ul>
<li>Lines or options can be commented with <code>#</code> and <code>//</code></li>
<li>Value assignment can use:<ul>
<li>Lines can be commented with <code>#</code> and <code>//</code></li>
<li>Values can be assigned to properties with:<ul>
<li>Equals sign: <code>foo = 2</code></li>
<li>Colon: <code>foo: 2</code></li>
<li>Whitespace: <code>foo 2</code></li>
@ -321,7 +456,7 @@
<ul>
<li>Are block scoped</li>
<li>Are referenced with a <code>$</code> prefix.</li>
<li>Can be resolved from the environment</li>
<li>Can be resolved from the environment variables having the same name</li>
</ul>
<blockquote>
<p>If the environment variable value begins with a number you may have trouble resolving it depending on the server version you are running.</p>
@ -334,7 +469,8 @@ authorization {
token: $TOKEN
}
</code></pre><p>A similar configuration, but this time, the value is in the environment:</p>
<pre class="language-"><code>authorization {
<pre class="language-"><code># TOKEN should be defined in the environment
authorization {
token: $TOKEN
}
</code></pre><p>export TOKEN=&quot;hello&quot;; nats-server -c /config/file</p>
@ -370,7 +506,7 @@ authorization {
</a>
<a href="signals.html" class="navigation navigation-next " aria-label="Next page: Signals">
<a href="authentication.html" class="navigation navigation-next " aria-label="Next page: Authentication">
<i class="fa fa-angle-right"></i>
</a>
@ -381,7 +517,7 @@ authorization {
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"Configuration File","level":"1.1.1.5","depth":3,"next":{"title":"Signals","level":"1.1.1.6","depth":3,"path":"nats_server/signals.md","ref":"nats_server/signals.md","articles":[]},"previous":{"title":"Flags","level":"1.1.1.4","depth":3,"path":"nats_server/flags.md","ref":"nats_server/flags.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["prism","-highlight","include-html"],"pluginsConfig":{"prism":{},"include-html":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"nats_server/configuration.md","mtime":"2019-05-13T21:46:03.611Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-05-15T15:16:11.909Z"},"basePath":"..","book":{"language":""}});
gitbook.page.hasChanged({"page":{"title":"Configuration File","level":"1.1.1.5","depth":3,"next":{"title":"Authentication","level":"1.1.1.5.1","depth":4,"path":"nats_server/authentication.md","ref":"nats_server/authentication.md","articles":[]},"previous":{"title":"Flags","level":"1.1.1.4","depth":3,"path":"nats_server/flags.md","ref":"nats_server/flags.md","articles":[]},"dir":"ltr"},"config":{"plugins":["prism","-highlight","include-html"],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"prism":{},"include-html":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","author":"The NATS Maintainers","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"NATS","gitbook":"*","description":"Administrative, developer and conceptual documentation for the NATS messaging system."},"file":{"path":"nats_server/configuration.md","mtime":"2019-05-15T18:30:54.693Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-05-15T19:18:57.723Z"},"basePath":"..","book":{"language":""}});
});
</script>
</div>

View File

@ -4,11 +4,11 @@
<head>
<meta charset="UTF-8">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>Flags · GitBook</title>
<title>Flags · NATS</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="description" content="">
<meta name="generator" content="GitBook 3.2.3">
<meta name="author" content="The NATS Maintainers">
@ -184,6 +184,128 @@
<ul class="articles">
<li class="chapter " data-level="1.1.1.5.1" data-path="authentication.html">
<a href="authentication.html">
Authentication
</a>
</li>
<li class="chapter " data-level="1.1.1.5.2" data-path="authorization.html">
<a href="authorization.html">
Authorization
</a>
</li>
<li class="chapter " data-level="1.1.1.5.3" data-path="clustering.html">
<a href="clustering.html">
Clustering
</a>
</li>
<li class="chapter " data-level="1.1.1.5.4" data-path="tls.html">
<a href="tls.html">
TLS Security
</a>
</li>
<li class="chapter " data-level="1.1.1.5.5" data-path="logging.html">
<a href="logging.html">
Logging
</a>
</li>
<li class="chapter " data-level="1.1.1.5.6" data-path="monitoring.html">
<a href="monitoring.html">
Monitoring
</a>
<ul class="articles">
<li class="chapter " data-level="1.1.1.5.6.1" data-path="natstop.html">
<a href="natstop.html">
Statistics
</a>
<ul class="articles">
<li class="chapter " data-level="1.1.1.5.6.1.1" data-path="nats_top_tutorial.html">
<a href="nats_top_tutorial.html">
NATS Top Tutorial
</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="chapter " data-level="1.1.1.6" data-path="signals.html">
@ -210,6 +332,19 @@
</li>
<li class="chapter " data-level="1.1.1.8" data-path="upgrading.html">
<a href="upgrading.html">
Upgrading a Cluster
</a>
</li>
@ -321,7 +456,7 @@
<tbody>
<tr>
<td style="text-align:left"><code>-a</code>, <code>--addr</code></td>
<td style="text-align:left">Host address to bind to (default: 0.0.0.0) - all interfaces.</td>
<td style="text-align:left">Host address to bind to (default: <code>0.0.0.0</code> - all interfaces).</td>
</tr>
<tr>
<td style="text-align:left"><code>-p</code>, <code>--port</code></td>
@ -357,7 +492,33 @@
</tr>
</tbody>
</table>
<h3 id="authentication-options">Authentication Options</h3>
<p>The following options control very simple authentication:</p>
<table>
<thead>
<tr>
<th style="text-align:left">Flag</th>
<th style="text-align:left">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left"><code>--user</code></td>
<td style="text-align:left">Required <em>username</em> for connections.</td>
</tr>
<tr>
<td style="text-align:left"><code>--pass</code></td>
<td style="text-align:left">Required <em>password</em> for connections.</td>
</tr>
<tr>
<td style="text-align:left"><code>--auth</code></td>
<td style="text-align:left">Required <em>authorization token</em> for connections.</td>
</tr>
</tbody>
</table>
<p>You can read more about <a href="authentication.html">autentication configuration here</a>.</p>
<h3 id="logging-options">Logging Options</h3>
<p>The following flags are available on the server to configure logging:</p>
<table>
<thead>
<tr>
@ -396,29 +557,7 @@
</tr>
</tbody>
</table>
<h3 id="authorization-options">Authorization Options</h3>
<table>
<thead>
<tr>
<th style="text-align:left">Flag</th>
<th style="text-align:left">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left"><code>--user</code></td>
<td style="text-align:left">Required <em>username</em> for connections.</td>
</tr>
<tr>
<td style="text-align:left"><code>--pass</code></td>
<td style="text-align:left">Required <em>password</em> for connections.</td>
</tr>
<tr>
<td style="text-align:left"><code>--auth</code></td>
<td style="text-align:left">Required <em>authorization token</em> for connections.</td>
</tr>
</tbody>
</table>
<p>You can read more about <a href="logging.html">logging configuration here</a>.</p>
<h3 id="tls-options">TLS Options</h3>
<table>
<thead>
@ -451,6 +590,7 @@
</tbody>
</table>
<h3 id="cluster-options">Cluster Options</h3>
<p>The following flags are available on the server to configure clustering:</p>
<table>
<thead>
<tr>
@ -481,6 +621,7 @@
</tr>
</tbody>
</table>
<p>You can read more about <a href="clustering.html">clustering configuration here</a>.</p>
<h3 id="common-options">Common Options</h3>
<table>
<thead>
@ -547,7 +688,7 @@
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"Flags","level":"1.1.1.4","depth":3,"next":{"title":"Configuration File","level":"1.1.1.5","depth":3,"path":"nats_server/configuration.md","ref":"nats_server/configuration.md","articles":[]},"previous":{"title":"Clients","level":"1.1.1.3","depth":3,"path":"nats_server/clients.md","ref":"nats_server/clients.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["prism","-highlight","include-html"],"pluginsConfig":{"prism":{},"include-html":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"nats_server/flags.md","mtime":"2019-05-13T21:14:44.370Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-05-15T15:16:11.909Z"},"basePath":"..","book":{"language":""}});
gitbook.page.hasChanged({"page":{"title":"Flags","level":"1.1.1.4","depth":3,"next":{"title":"Configuration File","level":"1.1.1.5","depth":3,"path":"nats_server/configuration.md","ref":"nats_server/configuration.md","articles":[{"title":"Authentication","level":"1.1.1.5.1","depth":4,"path":"nats_server/authentication.md","ref":"nats_server/authentication.md","articles":[]},{"title":"Authorization","level":"1.1.1.5.2","depth":4,"path":"nats_server/authorization.md","ref":"nats_server/authorization.md","articles":[]},{"title":"Clustering","level":"1.1.1.5.3","depth":4,"path":"nats_server/clustering.md","ref":"nats_server/clustering.md","articles":[]},{"title":"TLS Security","level":"1.1.1.5.4","depth":4,"path":"nats_server/tls.md","ref":"nats_server/tls.md","articles":[]},{"title":"Logging","level":"1.1.1.5.5","depth":4,"path":"nats_server/logging.md","ref":"nats_server/logging.md","articles":[]},{"title":"Monitoring","level":"1.1.1.5.6","depth":4,"path":"nats_server/monitoring.md","ref":"nats_server/monitoring.md","articles":[{"title":"Statistics","level":"1.1.1.5.6.1","depth":5,"path":"nats_server/natstop.md","ref":"nats_server/natstop.md","articles":[{"title":"NATS Top Tutorial","level":"1.1.1.5.6.1.1","depth":6,"path":"nats_server/nats_top_tutorial.md","ref":"nats_server/nats_top_tutorial.md","articles":[]}]}]}]},"previous":{"title":"Clients","level":"1.1.1.3","depth":3,"path":"nats_server/clients.md","ref":"nats_server/clients.md","articles":[]},"dir":"ltr"},"config":{"plugins":["prism","-highlight","include-html"],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"prism":{},"include-html":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","author":"The NATS Maintainers","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"NATS","gitbook":"*","description":"Administrative, developer and conceptual documentation for the NATS messaging system."},"file":{"path":"nats_server/flags.md","mtime":"2019-05-15T18:41:01.921Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-05-15T19:18:57.723Z"},"basePath":"..","book":{"language":""}});
});
</script>
</div>

View File

@ -104,9 +104,10 @@
</li>
<ul class="articles">
<li class="chapter active" data-level="1.2" data-path="./">
<li class="chapter active" data-level="1.1.1" data-path="./">
<a href="./">
@ -120,7 +121,7 @@
<ul class="articles">
<li class="chapter " data-level="1.2.1" data-path="installation.html">
<li class="chapter " data-level="1.1.1.1" data-path="installation.html">
<a href="installation.html">
@ -133,7 +134,7 @@
</li>
<li class="chapter " data-level="1.2.2" data-path="running.html">
<li class="chapter " data-level="1.1.1.2" data-path="running.html">
<a href="running.html">
@ -146,7 +147,7 @@
</li>
<li class="chapter " data-level="1.2.3" data-path="clients.html">
<li class="chapter " data-level="1.1.1.3" data-path="clients.html">
<a href="clients.html">
@ -157,6 +158,139 @@
</li>
<li class="chapter " data-level="1.1.1.4" data-path="flags.html">
<a href="flags.html">
Flags
</a>
</li>
<li class="chapter " data-level="1.1.1.5" data-path="configuration.html">
<a href="configuration.html">
Configuration File
</a>
<ul class="articles">
<li class="chapter " data-level="1.1.1.5.1" data-path="authentication.html">
<a href="authentication.html">
Authentication
</a>
</li>
<li class="chapter " data-level="1.1.1.5.2" data-path="authorization.html">
<a href="authorization.html">
Authorization
</a>
</li>
<li class="chapter " data-level="1.1.1.5.3" data-path="clustering.html">
<a href="clustering.html">
Clustering
</a>
</li>
<li class="chapter " data-level="1.1.1.5.4" data-path="tls.html">
<a href="tls.html">
TLS Security
</a>
</li>
<li class="chapter " data-level="1.1.1.5.5" data-path="logging.html">
<a href="logging.html">
Logging
</a>
</li>
<li class="chapter " data-level="1.1.1.5.6" data-path="monitoring.html">
<a href="monitoring.html">
Monitoring
</a>
<ul class="articles">
<li class="chapter " data-level="1.1.1.5.6.1" data-path="natstop.html">
<a href="natstop.html">
Statistics
</a>
<ul class="articles">
<li class="chapter " data-level="1.1.1.5.6.1.1" data-path="nats_top_tutorial.html">
<a href="nats_top_tutorial.html">
NATS Top Tutorial
</a>
</li>
@ -164,7 +298,66 @@
</li>
<li class="chapter " data-level="1.3" data-path="../developer/">
</ul>
</li>
</ul>
</li>
<li class="chapter " data-level="1.1.1.6" data-path="signals.html">
<a href="signals.html">
Signals
</a>
</li>
<li class="chapter " data-level="1.1.1.7" data-path="windows_srv.html">
<a href="windows_srv.html">
Window Service
</a>
</li>
<li class="chapter " data-level="1.1.1.8" data-path="upgrading.html">
<a href="upgrading.html">
Upgrading a Cluster
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="chapter " data-level="1.2" data-path="../developer/">
<a href="../developer/">
@ -178,7 +371,7 @@
<ul class="articles">
<li class="chapter " data-level="1.3.1" data-path="../developer/connecting.html">
<li class="chapter " data-level="1.2.1" data-path="../developer/connecting.html">
<a href="../developer/connecting.html">
@ -289,7 +482,7 @@
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"NATS Server","level":"1.2","depth":1,"next":{"title":"Installing","level":"1.2.1","depth":2,"path":"nats_server/installation.md","ref":"nats_server/installation.md","articles":[]},"previous":{"title":"Introduction","level":"1.1","depth":1,"path":"README.md","ref":"README.md","articles":[]},"dir":"ltr"},"config":{"plugins":["prism","-highlight","include-html"],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"prism":{},"include-html":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","author":"The NATS Maintainers","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"NATS","gitbook":"*","description":"Administrative, developer and conceptual documentation for the NATS messaging system."},"file":{"path":"nats_server/README.md","mtime":"2019-05-13T22:01:38.527Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-05-15T17:41:03.846Z"},"basePath":"..","book":{"language":""}});
gitbook.page.hasChanged({"page":{"title":"NATS Server","level":"1.1.1","depth":2,"next":{"title":"Installing","level":"1.1.1.1","depth":3,"path":"nats_server/installation.md","ref":"nats_server/installation.md","articles":[]},"previous":{"title":"Introduction","level":"1.1","depth":1,"path":"README.md","ref":"README.md","articles":[{"title":"NATS Server","level":"1.1.1","depth":2,"path":"nats_server/README.md","ref":"nats_server/README.md","articles":[{"title":"Installing","level":"1.1.1.1","depth":3,"path":"nats_server/installation.md","ref":"nats_server/installation.md","articles":[]},{"title":"Running","level":"1.1.1.2","depth":3,"path":"nats_server/running.md","ref":"nats_server/running.md","articles":[]},{"title":"Clients","level":"1.1.1.3","depth":3,"path":"nats_server/clients.md","ref":"nats_server/clients.md","articles":[]},{"title":"Flags","level":"1.1.1.4","depth":3,"path":"nats_server/flags.md","ref":"nats_server/flags.md","articles":[]},{"title":"Configuration File","level":"1.1.1.5","depth":3,"path":"nats_server/configuration.md","ref":"nats_server/configuration.md","articles":[{"title":"Authentication","level":"1.1.1.5.1","depth":4,"path":"nats_server/authentication.md","ref":"nats_server/authentication.md","articles":[]},{"title":"Authorization","level":"1.1.1.5.2","depth":4,"path":"nats_server/authorization.md","ref":"nats_server/authorization.md","articles":[]},{"title":"Clustering","level":"1.1.1.5.3","depth":4,"path":"nats_server/clustering.md","ref":"nats_server/clustering.md","articles":[]},{"title":"TLS Security","level":"1.1.1.5.4","depth":4,"path":"nats_server/tls.md","ref":"nats_server/tls.md","articles":[]},{"title":"Logging","level":"1.1.1.5.5","depth":4,"path":"nats_server/logging.md","ref":"nats_server/logging.md","articles":[]},{"title":"Monitoring","level":"1.1.1.5.6","depth":4,"path":"nats_server/monitoring.md","ref":"nats_server/monitoring.md","articles":[{"title":"Statistics","level":"1.1.1.5.6.1","depth":5,"path":"nats_server/natstop.md","ref":"nats_server/natstop.md","articles":[{"title":"NATS Top Tutorial","level":"1.1.1.5.6.1.1","depth":6,"path":"nats_server/nats_top_tutorial.md","ref":"nats_server/nats_top_tutorial.md","articles":[]}]}]}]},{"title":"Signals","level":"1.1.1.6","depth":3,"path":"nats_server/signals.md","ref":"nats_server/signals.md","articles":[]},{"title":"Window Service","level":"1.1.1.7","depth":3,"path":"nats_server/windows_srv.md","ref":"nats_server/windows_srv.md","articles":[]},{"title":"Upgrading a Cluster","level":"1.1.1.8","depth":3,"path":"nats_server/upgrading.md","ref":"nats_server/upgrading.md","articles":[]}]}]},"dir":"ltr"},"config":{"plugins":["prism","-highlight","include-html"],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"prism":{},"include-html":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","author":"The NATS Maintainers","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"NATS","gitbook":"*","description":"Administrative, developer and conceptual documentation for the NATS messaging system."},"file":{"path":"nats_server/README.md","mtime":"2019-05-13T14:20:04.050Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-05-15T19:18:57.723Z"},"basePath":"..","book":{"language":""}});
});
</script>
</div>

View File

@ -104,9 +104,10 @@
</li>
<ul class="articles">
<li class="chapter " data-level="1.2" data-path="./">
<li class="chapter " data-level="1.1.1" data-path="./">
<a href="./">
@ -120,7 +121,7 @@
<ul class="articles">
<li class="chapter active" data-level="1.2.1" data-path="installation.html">
<li class="chapter active" data-level="1.1.1.1" data-path="installation.html">
<a href="installation.html">
@ -133,7 +134,7 @@
</li>
<li class="chapter " data-level="1.2.2" data-path="running.html">
<li class="chapter " data-level="1.1.1.2" data-path="running.html">
<a href="running.html">
@ -146,7 +147,7 @@
</li>
<li class="chapter " data-level="1.2.3" data-path="clients.html">
<li class="chapter " data-level="1.1.1.3" data-path="clients.html">
<a href="clients.html">
@ -157,6 +158,139 @@
</li>
<li class="chapter " data-level="1.1.1.4" data-path="flags.html">
<a href="flags.html">
Flags
</a>
</li>
<li class="chapter " data-level="1.1.1.5" data-path="configuration.html">
<a href="configuration.html">
Configuration File
</a>
<ul class="articles">
<li class="chapter " data-level="1.1.1.5.1" data-path="authentication.html">
<a href="authentication.html">
Authentication
</a>
</li>
<li class="chapter " data-level="1.1.1.5.2" data-path="authorization.html">
<a href="authorization.html">
Authorization
</a>
</li>
<li class="chapter " data-level="1.1.1.5.3" data-path="clustering.html">
<a href="clustering.html">
Clustering
</a>
</li>
<li class="chapter " data-level="1.1.1.5.4" data-path="tls.html">
<a href="tls.html">
TLS Security
</a>
</li>
<li class="chapter " data-level="1.1.1.5.5" data-path="logging.html">
<a href="logging.html">
Logging
</a>
</li>
<li class="chapter " data-level="1.1.1.5.6" data-path="monitoring.html">
<a href="monitoring.html">
Monitoring
</a>
<ul class="articles">
<li class="chapter " data-level="1.1.1.5.6.1" data-path="natstop.html">
<a href="natstop.html">
Statistics
</a>
<ul class="articles">
<li class="chapter " data-level="1.1.1.5.6.1.1" data-path="nats_top_tutorial.html">
<a href="nats_top_tutorial.html">
NATS Top Tutorial
</a>
</li>
@ -164,7 +298,66 @@
</li>
<li class="chapter " data-level="1.3" data-path="../developer/">
</ul>
</li>
</ul>
</li>
<li class="chapter " data-level="1.1.1.6" data-path="signals.html">
<a href="signals.html">
Signals
</a>
</li>
<li class="chapter " data-level="1.1.1.7" data-path="windows_srv.html">
<a href="windows_srv.html">
Window Service
</a>
</li>
<li class="chapter " data-level="1.1.1.8" data-path="upgrading.html">
<a href="upgrading.html">
Upgrading a Cluster
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="chapter " data-level="1.2" data-path="../developer/">
<a href="../developer/">
@ -178,7 +371,7 @@
<ul class="articles">
<li class="chapter " data-level="1.3.1" data-path="../developer/connecting.html">
<li class="chapter " data-level="1.2.1" data-path="../developer/connecting.html">
<a href="../developer/connecting.html">
@ -250,7 +443,7 @@
<pre class="language-"><code>&gt; brew install nats-server
</code></pre><p>Via Docker:</p>
<pre class="language-"><code>&gt; docker pull nats-server:latest
</code></pre><h3 id="installing-directly-release-build">Installing directly Release Build</h3>
</code></pre><h3 id="installing-a-release-build">Installing A Release Build</h3>
<p>You can find the latest release of nats-server <a href="https://github.com/nats-io/nats-server/releases/latest" target="_blank">here</a>.</p>
<p>Simply download the zip file matching your systems architecture, and unzip. For this example, assuming version 2.0.0 of the server, and a Linux AMD64:</p>
<pre class="language-"><code>&gt; curl -L https://github.com/nats-io/nats-server/releases/download/v2.0.0/nats-server-v2.0.0-linux-amd64.zip -o nats-server.zip
@ -264,9 +457,9 @@ Archive: nats-server.zip
&gt; cp nats-server-v2.0.0darwin-amd64/nats-server /usr/local/bin
</code></pre><h3 id="installing-from-the-source">Installing from the source</h3>
<p>If you have go installed, installing the binary is very easy:</p>
<p>If you have go installed, installing the binary is easy:</p>
<pre class="language-"><code>&gt; go get github.com/nats-io/nats-server
</code></pre><p>This mechanism will always install the latest build on <a href="https://github.com/nats-io/nats-server" target="_blank">master</a>, which almost certainly will not be a released version. If you are a developer and want to play with the the latest, this is the easiest way of obtaining it. </p>
</code></pre><p>This mechanism will install a build of <a href="https://github.com/nats-io/nats-server" target="_blank">master</a>, which almost certainly will not be a released version. If you are a developer and want to play with the the latest, this is the easiest way of obtaining it. </p>
<h2 id="testing-your-installation">Testing Your Installation</h2>
<p>To test your installation (provided the install locations are visible by your shell):</p>
<pre class="language-"><code>&gt; nats-server
@ -318,7 +511,7 @@ Archive: nats-server.zip
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"Installing","level":"1.2.1","depth":2,"next":{"title":"Running","level":"1.2.2","depth":2,"path":"nats_server/running.md","ref":"nats_server/running.md","articles":[]},"previous":{"title":"NATS Server","level":"1.2","depth":1,"path":"nats_server/README.md","ref":"nats_server/README.md","articles":[{"title":"Installing","level":"1.2.1","depth":2,"path":"nats_server/installation.md","ref":"nats_server/installation.md","articles":[]},{"title":"Running","level":"1.2.2","depth":2,"path":"nats_server/running.md","ref":"nats_server/running.md","articles":[]},{"title":"Clients","level":"1.2.3","depth":2,"path":"nats_server/clients.md","ref":"nats_server/clients.md","articles":[]}]},"dir":"ltr"},"config":{"plugins":["prism","-highlight","include-html"],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"prism":{},"include-html":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","author":"The NATS Maintainers","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"NATS","gitbook":"*","description":"Administrative, developer and conceptual documentation for the NATS messaging system."},"file":{"path":"nats_server/installation.md","mtime":"2019-05-13T22:01:38.527Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-05-15T17:41:03.846Z"},"basePath":"..","book":{"language":""}});
gitbook.page.hasChanged({"page":{"title":"Installing","level":"1.1.1.1","depth":3,"next":{"title":"Running","level":"1.1.1.2","depth":3,"path":"nats_server/running.md","ref":"nats_server/running.md","articles":[]},"previous":{"title":"NATS Server","level":"1.1.1","depth":2,"path":"nats_server/README.md","ref":"nats_server/README.md","articles":[{"title":"Installing","level":"1.1.1.1","depth":3,"path":"nats_server/installation.md","ref":"nats_server/installation.md","articles":[]},{"title":"Running","level":"1.1.1.2","depth":3,"path":"nats_server/running.md","ref":"nats_server/running.md","articles":[]},{"title":"Clients","level":"1.1.1.3","depth":3,"path":"nats_server/clients.md","ref":"nats_server/clients.md","articles":[]},{"title":"Flags","level":"1.1.1.4","depth":3,"path":"nats_server/flags.md","ref":"nats_server/flags.md","articles":[]},{"title":"Configuration File","level":"1.1.1.5","depth":3,"path":"nats_server/configuration.md","ref":"nats_server/configuration.md","articles":[{"title":"Authentication","level":"1.1.1.5.1","depth":4,"path":"nats_server/authentication.md","ref":"nats_server/authentication.md","articles":[]},{"title":"Authorization","level":"1.1.1.5.2","depth":4,"path":"nats_server/authorization.md","ref":"nats_server/authorization.md","articles":[]},{"title":"Clustering","level":"1.1.1.5.3","depth":4,"path":"nats_server/clustering.md","ref":"nats_server/clustering.md","articles":[]},{"title":"TLS Security","level":"1.1.1.5.4","depth":4,"path":"nats_server/tls.md","ref":"nats_server/tls.md","articles":[]},{"title":"Logging","level":"1.1.1.5.5","depth":4,"path":"nats_server/logging.md","ref":"nats_server/logging.md","articles":[]},{"title":"Monitoring","level":"1.1.1.5.6","depth":4,"path":"nats_server/monitoring.md","ref":"nats_server/monitoring.md","articles":[{"title":"Statistics","level":"1.1.1.5.6.1","depth":5,"path":"nats_server/natstop.md","ref":"nats_server/natstop.md","articles":[{"title":"NATS Top Tutorial","level":"1.1.1.5.6.1.1","depth":6,"path":"nats_server/nats_top_tutorial.md","ref":"nats_server/nats_top_tutorial.md","articles":[]}]}]}]},{"title":"Signals","level":"1.1.1.6","depth":3,"path":"nats_server/signals.md","ref":"nats_server/signals.md","articles":[]},{"title":"Window Service","level":"1.1.1.7","depth":3,"path":"nats_server/windows_srv.md","ref":"nats_server/windows_srv.md","articles":[]},{"title":"Upgrading a Cluster","level":"1.1.1.8","depth":3,"path":"nats_server/upgrading.md","ref":"nats_server/upgrading.md","articles":[]}]},"dir":"ltr"},"config":{"plugins":["prism","-highlight","include-html"],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"prism":{},"include-html":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","author":"The NATS Maintainers","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"NATS","gitbook":"*","description":"Administrative, developer and conceptual documentation for the NATS messaging system."},"file":{"path":"nats_server/installation.md","mtime":"2019-05-15T15:22:45.644Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-05-15T19:18:57.723Z"},"basePath":"..","book":{"language":""}});
});
</script>
</div>

View File

@ -104,9 +104,10 @@
</li>
<ul class="articles">
<li class="chapter " data-level="1.2" data-path="./">
<li class="chapter " data-level="1.1.1" data-path="./">
<a href="./">
@ -120,7 +121,7 @@
<ul class="articles">
<li class="chapter " data-level="1.2.1" data-path="installation.html">
<li class="chapter " data-level="1.1.1.1" data-path="installation.html">
<a href="installation.html">
@ -133,7 +134,7 @@
</li>
<li class="chapter active" data-level="1.2.2" data-path="running.html">
<li class="chapter active" data-level="1.1.1.2" data-path="running.html">
<a href="running.html">
@ -146,7 +147,7 @@
</li>
<li class="chapter " data-level="1.2.3" data-path="clients.html">
<li class="chapter " data-level="1.1.1.3" data-path="clients.html">
<a href="clients.html">
@ -157,6 +158,139 @@
</li>
<li class="chapter " data-level="1.1.1.4" data-path="flags.html">
<a href="flags.html">
Flags
</a>
</li>
<li class="chapter " data-level="1.1.1.5" data-path="configuration.html">
<a href="configuration.html">
Configuration File
</a>
<ul class="articles">
<li class="chapter " data-level="1.1.1.5.1" data-path="authentication.html">
<a href="authentication.html">
Authentication
</a>
</li>
<li class="chapter " data-level="1.1.1.5.2" data-path="authorization.html">
<a href="authorization.html">
Authorization
</a>
</li>
<li class="chapter " data-level="1.1.1.5.3" data-path="clustering.html">
<a href="clustering.html">
Clustering
</a>
</li>
<li class="chapter " data-level="1.1.1.5.4" data-path="tls.html">
<a href="tls.html">
TLS Security
</a>
</li>
<li class="chapter " data-level="1.1.1.5.5" data-path="logging.html">
<a href="logging.html">
Logging
</a>
</li>
<li class="chapter " data-level="1.1.1.5.6" data-path="monitoring.html">
<a href="monitoring.html">
Monitoring
</a>
<ul class="articles">
<li class="chapter " data-level="1.1.1.5.6.1" data-path="natstop.html">
<a href="natstop.html">
Statistics
</a>
<ul class="articles">
<li class="chapter " data-level="1.1.1.5.6.1.1" data-path="nats_top_tutorial.html">
<a href="nats_top_tutorial.html">
NATS Top Tutorial
</a>
</li>
@ -164,7 +298,66 @@
</li>
<li class="chapter " data-level="1.3" data-path="../developer/">
</ul>
</li>
</ul>
</li>
<li class="chapter " data-level="1.1.1.6" data-path="signals.html">
<a href="signals.html">
Signals
</a>
</li>
<li class="chapter " data-level="1.1.1.7" data-path="windows_srv.html">
<a href="windows_srv.html">
Window Service
</a>
</li>
<li class="chapter " data-level="1.1.1.8" data-path="upgrading.html">
<a href="upgrading.html">
Upgrading a Cluster
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="chapter " data-level="1.2" data-path="../developer/">
<a href="../developer/">
@ -178,7 +371,7 @@
<ul class="articles">
<li class="chapter " data-level="1.3.1" data-path="../developer/connecting.html">
<li class="chapter " data-level="1.2.1" data-path="../developer/connecting.html">
<a href="../developer/connecting.html">
@ -306,7 +499,7 @@ By default, security is not enabled.</p>
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"Running","level":"1.2.2","depth":2,"next":{"title":"Clients","level":"1.2.3","depth":2,"path":"nats_server/clients.md","ref":"nats_server/clients.md","articles":[]},"previous":{"title":"Installing","level":"1.2.1","depth":2,"path":"nats_server/installation.md","ref":"nats_server/installation.md","articles":[]},"dir":"ltr"},"config":{"plugins":["prism","-highlight","include-html"],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"prism":{},"include-html":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","author":"The NATS Maintainers","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"NATS","gitbook":"*","description":"Administrative, developer and conceptual documentation for the NATS messaging system."},"file":{"path":"nats_server/running.md","mtime":"2019-05-13T22:01:38.527Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-05-15T17:41:03.846Z"},"basePath":"..","book":{"language":""}});
gitbook.page.hasChanged({"page":{"title":"Running","level":"1.1.1.2","depth":3,"next":{"title":"Clients","level":"1.1.1.3","depth":3,"path":"nats_server/clients.md","ref":"nats_server/clients.md","articles":[]},"previous":{"title":"Installing","level":"1.1.1.1","depth":3,"path":"nats_server/installation.md","ref":"nats_server/installation.md","articles":[]},"dir":"ltr"},"config":{"plugins":["prism","-highlight","include-html"],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"prism":{},"include-html":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","author":"The NATS Maintainers","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"NATS","gitbook":"*","description":"Administrative, developer and conceptual documentation for the NATS messaging system."},"file":{"path":"nats_server/running.md","mtime":"2019-05-13T14:56:43.909Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-05-15T19:18:57.723Z"},"basePath":"..","book":{"language":""}});
});
</script>
</div>

View File

@ -4,11 +4,11 @@
<head>
<meta charset="UTF-8">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>Signals · GitBook</title>
<title>Signals · NATS</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="description" content="">
<meta name="generator" content="GitBook 3.2.3">
<meta name="author" content="The NATS Maintainers">
@ -61,7 +61,7 @@
<link rel="next" href="windows_srv.html" />
<link rel="prev" href="configuration.html" />
<link rel="prev" href="nats_top_tutorial.html" />
<link rel="stylesheet" href="https://cdn.materialdesignicons.com/3.6.95/css/materialdesignicons.min.css">
@ -184,6 +184,128 @@
<ul class="articles">
<li class="chapter " data-level="1.1.1.5.1" data-path="authentication.html">
<a href="authentication.html">
Authentication
</a>
</li>
<li class="chapter " data-level="1.1.1.5.2" data-path="authorization.html">
<a href="authorization.html">
Authorization
</a>
</li>
<li class="chapter " data-level="1.1.1.5.3" data-path="clustering.html">
<a href="clustering.html">
Clustering
</a>
</li>
<li class="chapter " data-level="1.1.1.5.4" data-path="tls.html">
<a href="tls.html">
TLS Security
</a>
</li>
<li class="chapter " data-level="1.1.1.5.5" data-path="logging.html">
<a href="logging.html">
Logging
</a>
</li>
<li class="chapter " data-level="1.1.1.5.6" data-path="monitoring.html">
<a href="monitoring.html">
Monitoring
</a>
<ul class="articles">
<li class="chapter " data-level="1.1.1.5.6.1" data-path="natstop.html">
<a href="natstop.html">
Statistics
</a>
<ul class="articles">
<li class="chapter " data-level="1.1.1.5.6.1.1" data-path="nats_top_tutorial.html">
<a href="nats_top_tutorial.html">
NATS Top Tutorial
</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="chapter active" data-level="1.1.1.6" data-path="signals.html">
@ -210,6 +332,19 @@
</li>
<li class="chapter " data-level="1.1.1.8" data-path="upgrading.html">
<a href="upgrading.html">
Upgrading a Cluster
</a>
</li>
@ -380,7 +515,7 @@ nats-server -sl ldm
<a href="configuration.html" class="navigation navigation-prev " aria-label="Previous page: Configuration File">
<a href="nats_top_tutorial.html" class="navigation navigation-prev " aria-label="Previous page: NATS Top Tutorial">
<i class="fa fa-angle-left"></i>
</a>
@ -396,7 +531,7 @@ nats-server -sl ldm
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"Signals","level":"1.1.1.6","depth":3,"next":{"title":"Window Service","level":"1.1.1.7","depth":3,"path":"nats_server/windows_srv.md","ref":"nats_server/windows_srv.md","articles":[]},"previous":{"title":"Configuration File","level":"1.1.1.5","depth":3,"path":"nats_server/configuration.md","ref":"nats_server/configuration.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["prism","-highlight","include-html"],"pluginsConfig":{"prism":{},"include-html":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"nats_server/signals.md","mtime":"2019-05-13T16:14:12.238Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-05-15T15:16:11.909Z"},"basePath":"..","book":{"language":""}});
gitbook.page.hasChanged({"page":{"title":"Signals","level":"1.1.1.6","depth":3,"next":{"title":"Window Service","level":"1.1.1.7","depth":3,"path":"nats_server/windows_srv.md","ref":"nats_server/windows_srv.md","articles":[]},"previous":{"title":"NATS Top Tutorial","level":"1.1.1.5.6.1.1","depth":6,"path":"nats_server/nats_top_tutorial.md","ref":"nats_server/nats_top_tutorial.md","articles":[]},"dir":"ltr"},"config":{"plugins":["prism","-highlight","include-html"],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"prism":{},"include-html":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","author":"The NATS Maintainers","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"NATS","gitbook":"*","description":"Administrative, developer and conceptual documentation for the NATS messaging system."},"file":{"path":"nats_server/signals.md","mtime":"2019-05-13T16:14:12.238Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-05-15T19:18:57.723Z"},"basePath":"..","book":{"language":""}});
});
</script>
</div>

View File

@ -4,11 +4,11 @@
<head>
<meta charset="UTF-8">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>Window Service · GitBook</title>
<title>Window Service · NATS</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="description" content="">
<meta name="generator" content="GitBook 3.2.3">
<meta name="author" content="The NATS Maintainers">
@ -58,7 +58,7 @@
<link rel="shortcut icon" href="../gitbook/images/favicon.ico" type="image/x-icon">
<link rel="next" href="../developer/" />
<link rel="next" href="upgrading.html" />
<link rel="prev" href="signals.html" />
@ -184,6 +184,128 @@
<ul class="articles">
<li class="chapter " data-level="1.1.1.5.1" data-path="authentication.html">
<a href="authentication.html">
Authentication
</a>
</li>
<li class="chapter " data-level="1.1.1.5.2" data-path="authorization.html">
<a href="authorization.html">
Authorization
</a>
</li>
<li class="chapter " data-level="1.1.1.5.3" data-path="clustering.html">
<a href="clustering.html">
Clustering
</a>
</li>
<li class="chapter " data-level="1.1.1.5.4" data-path="tls.html">
<a href="tls.html">
TLS Security
</a>
</li>
<li class="chapter " data-level="1.1.1.5.5" data-path="logging.html">
<a href="logging.html">
Logging
</a>
</li>
<li class="chapter " data-level="1.1.1.5.6" data-path="monitoring.html">
<a href="monitoring.html">
Monitoring
</a>
<ul class="articles">
<li class="chapter " data-level="1.1.1.5.6.1" data-path="natstop.html">
<a href="natstop.html">
Statistics
</a>
<ul class="articles">
<li class="chapter " data-level="1.1.1.5.6.1.1" data-path="nats_top_tutorial.html">
<a href="nats_top_tutorial.html">
NATS Top Tutorial
</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="chapter " data-level="1.1.1.6" data-path="signals.html">
@ -210,6 +332,19 @@
</li>
<li class="chapter " data-level="1.1.1.8" data-path="upgrading.html">
<a href="upgrading.html">
Upgrading a Cluster
</a>
</li>
@ -349,7 +484,7 @@
</a>
<a href="../developer/" class="navigation navigation-next " aria-label="Next page: Developing with NATS">
<a href="upgrading.html" class="navigation navigation-next " aria-label="Next page: Upgrading a Cluster">
<i class="fa fa-angle-right"></i>
</a>
@ -360,7 +495,7 @@
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"Window Service","level":"1.1.1.7","depth":3,"next":{"title":"Developing with NATS","level":"1.2","depth":1,"path":"developer/README.md","ref":"developer/README.md","articles":[{"title":"Connecting","level":"1.2.1","depth":2,"path":"developer/connecting.md","ref":"developer/connecting.md","articles":[]}]},"previous":{"title":"Signals","level":"1.1.1.6","depth":3,"path":"nats_server/signals.md","ref":"nats_server/signals.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["prism","-highlight","include-html"],"pluginsConfig":{"prism":{},"include-html":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"nats_server/windows_srv.md","mtime":"2019-05-13T16:13:54.780Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-05-15T15:16:11.909Z"},"basePath":"..","book":{"language":""}});
gitbook.page.hasChanged({"page":{"title":"Window Service","level":"1.1.1.7","depth":3,"next":{"title":"Upgrading a Cluster","level":"1.1.1.8","depth":3,"path":"nats_server/upgrading.md","ref":"nats_server/upgrading.md","articles":[]},"previous":{"title":"Signals","level":"1.1.1.6","depth":3,"path":"nats_server/signals.md","ref":"nats_server/signals.md","articles":[]},"dir":"ltr"},"config":{"plugins":["prism","-highlight","include-html"],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"prism":{},"include-html":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","author":"The NATS Maintainers","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"NATS","gitbook":"*","description":"Administrative, developer and conceptual documentation for the NATS messaging system."},"file":{"path":"nats_server/windows_srv.md","mtime":"2019-05-13T16:13:54.780Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-05-15T19:18:57.723Z"},"basePath":"..","book":{"language":""}});
});
</script>
</div>

File diff suppressed because one or more lines are too long

View File

@ -1,42 +0,0 @@
[{
"LanguageName": "java",
"FormalName": "Java",
"RepoURL": "https://github.com/nats-io/java-nats-examples.git",
"Extensions": [".java", ".txt"],
"SyntaxClass": "language-java"
},
{
"LanguageName": "go",
"FormalName": "Go",
"RepoURL": "https://github.com/nats-io/go-nats-examples.git",
"Extensions": [".go", ".txt"],
"SyntaxClass": "language-go"
},
{
"LanguageName": "ts",
"FormalName": "TypeScript",
"RepoURL": "https://github.com/nats-io/ts-nats-examples.git",
"Extensions": [".ts", ".txt"],
"SyntaxClass": "language-javascript"
},
{
"LanguageName": "js",
"FormalName": "JavaScript",
"RepoURL": "https://github.com/nats-io/node-nats-examples.git",
"Extensions": [".js", ".txt"],
"SyntaxClass": "language-javascript"
},
{
"LanguageName": "py",
"FormalName": "Python",
"RepoURL": "https://github.com/nats-io/asyncio-nats-examples.git",
"Extensions": [".py", ".txt"],
"SyntaxClass": "language-python"
},
{
"LanguageName": "ruby",
"FormalName": "Ruby",
"RepoURL": "https://github.com/nats-io/ruby-nats-examples.git",
"Extensions": [".rb", ".txt"],
"SyntaxClass": "language-ruby"
}]

View File

@ -1,17 +0,0 @@
{{$n := .Name}}
<div class="tab-wrap">
{{range .Languages}}
{{if .First}}
<input type="radio" id="{{$n}}_{{.Language}}" name="{{$n}}" class="tab" checked>
{{else}}
<input type="radio" id="{{$n}}_{{.Language}}" name="{{$n}}" class="tab">
{{end}}
<label for="{{$n}}_{{.Language}}" class="api-lang" data-language="{{.Language}}">{{.FormalName}}</label>
{{end}}
{{range .Languages}}
<div class="tab__content">
<pre id="{{$n}}_{{.Language}}_content"><a class="toolbar-icons pull-right" target="_blank" href="{{.RepoURL}}"><i class="mdi mdi-github-circle" title="View on GitHub"></i></a><a class="toolbar-icons pull-right"><i class="mdi mdi-content-copy js-copy" title="Copy to Clipboard"></i></a><span class="copy-msg pull-right"></span><code class="{{.SyntaxClass}}">{{.Content}}</code></pre>
</div>
{{end}}
</div>

View File

@ -1,287 +0,0 @@
package main
import (
"encoding/json"
"bufio"
"bytes"
"flag"
"fmt"
"html/template"
"io/ioutil"
"log"
"os"
"os/exec"
"path/filepath"
"regexp"
"sort"
"strings"
"unicode"
)
type exampleRepo struct {
LanguageName string
FormalName string
RepoURL string
Extensions []string
SyntaxClass string
}
type languageExample struct {
Language string
FormalName string
Content string
RepoURL string
SyntaxClass string
First bool
}
type languageList []languageExample
func (s languageList) Len() int {
return len(s)
}
func (s languageList) Swap(i, j int) {
s[i], s[j] = s[j], s[i]
}
func (s languageList) Less(i, j int) bool {
return s[i].Language < s[j].Language
}
type example struct {
Name string
Languages languageList
}
func searchRepo(repoDirectory string, repo exampleRepo, examples map[string]*example) error {
extensions := make(map[string]string)
for _, ext := range repo.Extensions {
extensions[ext] = ext
}
fmt.Printf("Searching for examples in: %q\n", repoDirectory)
err := filepath.Walk(repoDirectory, func(path string, info os.FileInfo, err error) error {
if err != nil {
fmt.Printf("prevent panic by handling failure accessing a path %q: %v\n", repoDirectory, err)
return err
}
ext := filepath.Ext(path)
if _, ok := extensions[ext]; ok {
fmt.Printf("\tReading: %q\n", info.Name())
file, err := os.Open(path)
if err != nil {
log.Fatal(err)
}
defer file.Close()
var buffer bytes.Buffer
exampleName := ""
beginExample, err := regexp.Compile(`\[begin ([^\s\[\]]+)\]`)
if err != nil {
log.Fatal(err)
}
endExample, err := regexp.Compile(`\[end ([^\s\[\]]+)\]`)
if err != nil {
log.Fatal(err)
}
scanner := bufio.NewScanner(file)
lineNumber := 1
beginLineNumber := lineNumber
relativePath, err := filepath.Rel(repoDirectory, path)
var indentRegex *regexp.Regexp
if err != nil {
log.Fatal(err)
}
for scanner.Scan() {
currentLine := scanner.Text()
if exampleName == "" {
matches := beginExample.FindStringSubmatch(currentLine)
if len(matches) == 2 {
exampleName = matches[1]
beginLineNumber = lineNumber
endExample, err = regexp.Compile(`\[end ` + exampleName + `\]`)
if err != nil {
log.Fatal(err)
}
}
} else if endExample.FindStringSubmatch(currentLine) != nil {
fmt.Printf("\t\tFound %q example\n", exampleName)
if _, ok := examples[exampleName]; !ok {
examples[exampleName] = &example{
Name: exampleName,
Languages: []languageExample{},
}
}
simpleRepoURL := strings.Replace(repo.RepoURL, ".git", "", -1)
gitHubURL := fmt.Sprintf("%s/blob/master/%s#L%d-%d", simpleRepoURL, relativePath, beginLineNumber, lineNumber)
example := examples[exampleName]
langExample := languageExample{
Language: repo.LanguageName,
FormalName: repo.FormalName,
SyntaxClass: repo.SyntaxClass,
Content: buffer.String(),
RepoURL: gitHubURL,
}
example.Languages = append(example.Languages, langExample)
// fmt.Printf("\t\tRepo url: %s\n", langExample.RepoURL)
exampleName = "" // Look for another example in this file
buffer.Reset()
} else {
// Calculate indent from first line
// Blindly chop following lines (this could be smarter)
if buffer.Len() == 0 {
before := len(currentLine)
currentLine = strings.TrimLeftFunc(currentLine, func(r rune) bool {
return unicode.IsSpace(r)
})
after := len(currentLine)
indent := before - after
if indent > 0 {
indentRegexString := fmt.Sprintf("^\\s{0,%d}", indent)
indentRegex, err = regexp.Compile(indentRegexString)
}
} else {
if indentRegex != nil {
currentLine = string(indentRegex.ReplaceAllString(currentLine, ""))
}
}
buffer.WriteString(currentLine)
buffer.WriteString("\n")
}
lineNumber++
}
if err := scanner.Err(); err != nil {
log.Fatal(err)
}
}
return nil
})
if err != nil {
fmt.Printf("error walking the path %q: %v\n", repoDirectory, err)
}
return err
}
func formatExamples(examples map[string]*example, exampleTemplate *template.Template, outputFolder string) {
fmt.Printf("Formatting examples\n")
for _, example := range examples {
if len(example.Languages) == 0 {
fmt.Printf("\tSkipping empty example %q\n", example.Name)
return
}
sort.Sort(languageList(example.Languages))
example.Languages[0].First = true
var buffer bytes.Buffer
err := exampleTemplate.Execute(&buffer, example)
if err != nil {
log.Fatal(err)
}
htmlPath := filepath.Join(outputFolder, fmt.Sprintf("%s.html", example.Name))
err = ioutil.WriteFile(htmlPath, buffer.Bytes(), 0666)
if err != nil {
log.Fatal(err)
}
fmt.Printf("\tFormatted %q to %q\n", example.Name, htmlPath)
}
}
func usage() {
log.Fatalf("Usage: examplecompiler -o <outputfolder> -t <template> -r <repo_list>\n")
}
func main() {
var outputFolder string
var templateFile string
var repoList string
flag.StringVar(&outputFolder, "o", "", "Output folder")
flag.StringVar(&repoList, "r", "", "Repo list as a JSON file")
flag.StringVar(&templateFile, "t", "", "Template file")
log.SetFlags(0)
flag.Usage = usage
flag.Parse()
if outputFolder == "" || templateFile == "" || repoList == "" {
usage()
}
templateData, err := ioutil.ReadFile(templateFile)
if err != nil {
log.Fatal(err)
}
exampleTemplateString := string(templateData)
exampleTemplate, err := template.New("example").Parse(exampleTemplateString)
if err != nil {
log.Fatal(err)
}
// Create a tmp dir to do our work in
dir, err := ioutil.TempDir("", "site_examples")
if err != nil {
log.Fatal(err)
}
fmt.Printf("Working directory created: %q\n", dir)
allRepoDir := filepath.Join(dir, "repos")
_ = os.Mkdir(allRepoDir, 0777)
fmt.Printf("Insuring output folder: %s\n", outputFolder)
_ = os.Mkdir(outputFolder, 0777)
repoJSON, err := ioutil.ReadFile(repoList)
if err != nil {
log.Fatal(err)
}
repos := []exampleRepo{}
err = json.Unmarshal(repoJSON, &repos)
if err != nil {
log.Fatal(err)
}
examples := make(map[string]*example)
for _, repo := range repos {
_, repoName := filepath.Split(repo.RepoURL)
repoName = repoName[0 : len(repoName)-len(".git")]
repoPath := filepath.Join(allRepoDir, repoName)
fmt.Printf("Downloading repo: %q\n", repo.RepoURL)
cmd := exec.Command("git", "clone", repo.RepoURL, repoName)
cmd.Dir = allRepoDir
cmd.Run()
searchRepo(repoPath, repo, examples)
}
formatExamples(examples, exampleTemplate, outputFolder)
}