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:
167
_examples/unsubscribe_auto.html
Normal file
167
_examples/unsubscribe_auto.html
Normal file
@@ -0,0 +1,167 @@
|
||||
|
||||
<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("demo.nats.io")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer nc.Close()
|
||||
|
||||
// Sync Subscription
|
||||
sub, err := nc.SubscribeSync("updates")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
if err := sub.AutoUnsubscribe(1); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
// Async Subscription
|
||||
sub, err = nc.Subscribe("updates", 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("nats://demo.nats.io:4222");
|
||||
Dispatcher d = nc.createDispatcher((msg) -> {
|
||||
String str = new String(msg.getData(), StandardCharsets.UTF_8);
|
||||
System.out.println(str);
|
||||
});
|
||||
|
||||
// Sync Subscription
|
||||
Subscription sub = nc.subscribe("updates");
|
||||
sub.unsubscribe(1);
|
||||
|
||||
// Async Subscription
|
||||
d.subscribe("updates");
|
||||
d.unsubscribe("updates", 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) => {
|
||||
t.log(msg);
|
||||
});
|
||||
|
||||
// another way after 10 messages
|
||||
let sub2 = nc.subscribe(NATS.createInbox(), (err, msg) => {
|
||||
t.log(msg.data);
|
||||
});
|
||||
// if the subscription already received 10 messages, the handler
|
||||
// won'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=["nats://demo.nats.io:4222"])
|
||||
|
||||
async def cb(msg):
|
||||
print(msg)
|
||||
|
||||
sid = await nc.subscribe("updates", cb=cb)
|
||||
await nc.auto_unsubscribe(sid, 1)
|
||||
await nc.publish("updates", b'All is Well')
|
||||
|
||||
# Won't be received...
|
||||
await nc.publish("updates", b'...')
|
||||
|
||||
</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 'nats/client'
|
||||
require 'fiber'
|
||||
|
||||
NATS.start(servers:["nats://127.0.0.1:4222"]) do |nc|
|
||||
Fiber.new do
|
||||
f = Fiber.current
|
||||
|
||||
nc.subscribe("time", max: 1) do |msg, reply|
|
||||
f.resume Time.now
|
||||
end
|
||||
|
||||
nc.publish("time", 'What is the time?', NATS.create_inbox)
|
||||
|
||||
# Use the response
|
||||
msg = Fiber.yield
|
||||
puts "Reply: #{msg}"
|
||||
|
||||
# Won't be received
|
||||
nc.publish("time", 'What is the time?', 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) => {
|
||||
t.log(msg.data);
|
||||
}, opts);
|
||||
|
||||
// another way after 10 messages
|
||||
let sub2 = await nc.subscribe(createInbox(), (err, msg) => {
|
||||
t.log(msg.data);
|
||||
});
|
||||
// if the subscription already received 10 messages, the handler
|
||||
// won't get any more messages
|
||||
sub2.unsubscribe(10);
|
||||
</code></pre>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
Reference in New Issue
Block a user