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

Cleaned up how examples are handled to reduce thrashing in git

Examples are no longer in the final html as solo files, only in their container file
This commit is contained in:
Stephen Asbury
2019-05-15 10:41:36 -07:00
parent e8e306c8a8
commit 57db99feba
105 changed files with 36 additions and 6265 deletions

View File

@@ -0,0 +1,193 @@
<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>