1
0
mirror of https://github.com/taigrr/nats.docs synced 2025-01-18 04:03:23 -08:00
nats.docs/docs/developer/examples/unsubscribe_auto.html
Stephen Asbury e8e306c8a8 Added make file
Added title, author to book.json
Added .bookignore
Ran make so docs updated
2019-05-15 10:37:46 -07:00

168 lines
6.6 KiB
HTML

<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>